From ea57d45eb3a026feb8d7bf50c3df005d8cf4af3f Mon Sep 17 00:00:00 2001 From: MaxED <j.maxed@gmail.com> Date: Mon, 29 Aug 2016 10:06:16 +0000 Subject: [PATCH] Added: action argument inputs now support incremental increase/decrease prefixes (+++ and ---). Probably fixed probable I/O race condition when loading images. Fixed Visual mode stuttering due to floating point precision degradation when running the editor for several days without restarting (internal timer is now reset when saving the map or creating a new one). Fixed, Nodes Viewer, cosmetic: Nodes Viewer window position was reset after pressing the "Rebuild Nodes" button. Added Eternity Game configurations by printz. Updated ZDoom_ACS.cfg (CheckClass). Updated ZDoom ACC (CheckClass). --- Build/Compilers/ZDoom/zspecial.acs | 3 + Build/Configurations/Eternity_Doom2Doom.cfg | 61 + Build/Configurations/Eternity_DoomUDMF.cfg | 57 + .../Includes/Eternity_common.cfg | 364 ++ .../Includes/Eternity_generalized.cfg | 14 + .../Includes/Eternity_linedefs.cfg | 2668 +++++++++++ .../Configurations/Includes/Eternity_misc.cfg | 4217 +++++++++++++++++ .../Includes/Eternity_things.cfg | 124 + Build/Scripting/ZDoom_ACS.cfg | 1 + Source/Core/Controls/ArgumentBox.cs | 36 +- Source/Core/Controls/ArgumentsControl.cs | 24 +- Source/Core/Data/FlatImage.cs | 9 +- Source/Core/Data/HiResImage.cs | 9 +- Source/Core/Data/SimpleTextureImage.cs | 9 +- Source/Core/Data/SpriteImage.cs | 9 +- Source/Core/Data/TEXTURESImage.cs | 9 +- Source/Core/Data/TextureImage.cs | 9 +- Source/Core/Editing/EditMode.cs | 1 + Source/Core/General/Clock.cs | 7 + Source/Core/General/General.cs | 14 + Source/Core/Rendering/Renderer3D.cs | 3 +- Source/Core/VisualModes/VisualThing.cs | 9 +- Source/Core/Windows/LinedefEditForm.cs | 9 +- Source/Core/Windows/LinedefEditFormUDMF.cs | 3 +- Source/Core/Windows/MainForm.cs | 11 + Source/Core/Windows/ThingEditForm.cs | 9 +- Source/Core/Windows/ThingEditFormUDMF.cs | 9 +- .../ClassicModes/MakeSectorMode.cs | 3 +- .../VisualModes/BaseVisualMode.cs | 9 +- Source/Plugins/NodesViewer/NodesForm.cs | 1 + .../VisplaneExplorer/VisplaneExplorerMode.cs | 10 +- 31 files changed, 7663 insertions(+), 58 deletions(-) create mode 100644 Build/Configurations/Eternity_Doom2Doom.cfg create mode 100644 Build/Configurations/Eternity_DoomUDMF.cfg create mode 100644 Build/Configurations/Includes/Eternity_common.cfg create mode 100644 Build/Configurations/Includes/Eternity_generalized.cfg create mode 100644 Build/Configurations/Includes/Eternity_linedefs.cfg create mode 100644 Build/Configurations/Includes/Eternity_misc.cfg create mode 100644 Build/Configurations/Includes/Eternity_things.cfg diff --git a/Build/Compilers/ZDoom/zspecial.acs b/Build/Compilers/ZDoom/zspecial.acs index 39ea92135..3f7ba0eb6 100644 --- a/Build/Compilers/ZDoom/zspecial.acs +++ b/Build/Compilers/ZDoom/zspecial.acs @@ -396,6 +396,9 @@ special -124:EndDBTransaction(0), -125:GetDBEntries(1), + // -1xx are reserved for Zandronum + -200:CheckClass(1), + // ZDaemon's -19620:GetTeamScore(1), -19621:SetTeamScore(2), diff --git a/Build/Configurations/Eternity_Doom2Doom.cfg b/Build/Configurations/Eternity_Doom2Doom.cfg new file mode 100644 index 000000000..ac838ceb8 --- /dev/null +++ b/Build/Configurations/Eternity_Doom2Doom.cfg @@ -0,0 +1,61 @@ +/*************************************************************\ + Doom Builder 2 Game Configuration for ZDoom-compatible port +\*************************************************************/ + +// This is required to prevent accidental use of a different configuration +type = "Doom Builder 2 Game Configuration"; + +// This is the title to show for this game +game = "Eternity: Doom 2 (Doom format)"; + +// This is the simplified game engine/sourceport name +engine = "eternity"; + +// ******************************************************* +// * * +// * Note: all the elements that could be factorized * +// * because they were common to ZDoom, GZDoom and * +// * Zandronum have been moved to ZDoom_common.cfg. * +// * * +// ******************************************************* + +// STANDARD DOOM SETTINGS +// Settings common to all games and all map formats +include("Includes\\Doom_common.cfg", "common"); + +// Settings common to Doom map format +include("Includes\\Eternity_common.cfg", "mapformat_doom"); + +// Settings common to Doom games +include("Includes\\Game_Doom.cfg"); + +//mxd. No DECORATE support in Eternity +decorategames = ""; + +// Default thing filters +// (these are not required, just useful for new users) +thingsfilters +{ + include("Includes\\Doom_misc.cfg", "thingsfilters"); +} + +// THING TYPES +// Each engine has its own additional thing types +// Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom +thingtypes +{ + // Basic game actors + include("Includes\\Doom_things.cfg"); + include("Includes\\Doom2_things.cfg"); + include("Includes\\Boom_things.cfg"); + include("Includes\\Eternity_things.cfg"); +} + +// ENUMERATIONS +// Each engine has its own additional thing types +// These are enumerated lists for linedef types and UDMF fields. +enums +{ + // Basic game enums + include("Includes\\Doom_misc.cfg", "enums"); +} diff --git a/Build/Configurations/Eternity_DoomUDMF.cfg b/Build/Configurations/Eternity_DoomUDMF.cfg new file mode 100644 index 000000000..4f53b6c88 --- /dev/null +++ b/Build/Configurations/Eternity_DoomUDMF.cfg @@ -0,0 +1,57 @@ +/*************************************************************\ + Doom Builder 2 Game Configuration for Eternity on UDMF +\*************************************************************/ + +// This is required to prevent accidental use of a different configuration +type = "Doom Builder 2 Game Configuration"; + +// This is the title to show for this game +game = "Eternity: Doom 2 (UDMF)"; + +// This is the simplified game engine/sourceport name +engine = "eternity"; + +// STANDARD ETERNITY SETTINGS +// Settings common to all games and all map formats +include("Includes\\Eternity_common.cfg", "common"); + +// Settings common to text map format +include("Includes\\Eternity_common.cfg", "mapformat_udmf"); + +// Settings common to Doom games +include("Includes\\Game_Doom.cfg"); + +//mxd. No DECORATE support in Eternity +decorategames = ""; + +// Default thing filters +// (these are not required, just useful for new users) +thingsfilters +{ + include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf"); +} + +// THING TYPES +// Each engine has its own additional thing types +// Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom +thingtypes +{ + // Basic game actors + include("Includes\\Doom_things.cfg"); + include("Includes\\Doom2_things.cfg"); + include("Includes\\Eternity_things.cfg"); +} + +// ENUMERATIONS +// Each engine has its own additional thing types +// These are enumerated lists for linedef types and UDMF fields. +enums +{ + // Basic game enums + include("Includes\\Doom_misc.cfg", "enums"); + // Standard ZDoom enums + include("Includes\\ZDoom_misc.cfg", "enums"); + // Additional ZDoom enums for that game + include("Includes\\ZDoom_misc.cfg", "enums_doom"); + include("Includes\\Eternity_misc.cfg", "enums"); +} diff --git a/Build/Configurations/Includes/Eternity_common.cfg b/Build/Configurations/Includes/Eternity_common.cfg new file mode 100644 index 000000000..13d300e85 --- /dev/null +++ b/Build/Configurations/Includes/Eternity_common.cfg @@ -0,0 +1,364 @@ +// *********************************************************** +// * * +// * These values are mainly for UDMF Eternity * +// * * +// *********************************************************** + +common +{ + // Some common settings + include("Common.cfg"); + + // Default testing parameters + include("Test_params.cfg", "vanilla_mapxx"); // Eternity doesn't yet have +map + + // Action special help (mxd) + actionspecialhelp = "http://eternity.youfailit.net/wiki/Detailed_parameterized_linedef_specification"; + + // FIXME: this info is not on the wiki, but in things.edf + // Thing class help (mxd) + thingclasshelp = "https://github.com/team-eternity/eternity/blob/master/base/doom/things.edf"; + + // Default nodebuilder configurations + defaultsavecompiler = "zdbsp_normal"; + defaulttestcompiler = "zdbsp_fast"; + + // Generalized actions + // generalizedlinedefs is true for Doom format and false for + // the other two, so it's not here. + generalizedsectors = true; + + //mxd. Maximum safe map size check (0 means skip check) + safeboundary = 0; + + // Texture loading options + mixtexturesflats = true; + defaulttexturescale = 1.0f; + defaultflatscale = 1.0f; + scaledtextureoffsets = true; + + //mxd. Sidedefs compression + // ioanch FIXME: what does this do? I made it false + sidedefcompressionignoresaction = false; + + // Texture sources + textures + { + include("Doom_misc.cfg", "textures"); + include("ZDoom_misc.cfg", "textures"); // works for Eternity too + } + + //mxd. HiRes sources + hires + { + include("ZDoom_misc.cfg", "hires"); + } + + // Patch sources + patches + { + include("Doom_misc.cfg", "patches"); + } + + // Sprite sources + sprites + { + include("Doom_misc.cfg", "sprites"); + } + + // Flat sources + flats + { + include("Doom_misc.cfg", "flats"); + } + + // Colormap sources + colormaps + { + include("Boom_misc.cfg", "colormaps"); + } + + //mxd. Voxel sources + // Not in Eternity +// voxels +// { +// include("ZDoom_misc.cfg", "voxels"); +// } + + // Generalized sector types + gen_sectortypes + { + include("ZDoom_generalized.cfg", "gen_sectortypes"); // same as in ZDOOM + } + + //mxd. Built-in Damage types + // ioanch: From base/things.edf + damagetypes = "Fist Pistol Shotgun Chaingun Plasma BFG BFG_Splash Chainsaw SShotgun BetaBFG BFGBurst Slime Lava Crush Telefrag Falling Suicide Barrel Splash Quake Rocket R_Splash BFG11k_Splash Grenade Hit PlayerMisc Fire"; +} + +mapformat_doom +{ + mixtexturesflats = true; + // The format interface handles the map data format + formatinterface = "DoomMapSetIO"; + + maplumpnames + { + include("Doom_misc.cfg", "doommaplumpnames"); + include("Boom_misc.cfg", "boommaplumpnames"); + } + + // When this is set to true, sectors with the same tag will light up when a line is highlighted + linetagindicatesectors = true; + + // Special linedefs + include("ZDoom_misc.cfg", "speciallinedefs_doomhexen"); + + // Default flags for first new thing + defaultthingflags + { + include("Doom_misc.cfg", "defaultthingflags"); + } + + // Door making + include("ZDoom_misc.cfg", "doormaking_doom"); + + // Generalized actions + generalizedlinedefs = true; + generalizedsectors = true; + + // GENERALIZED LINEDEF TYPES + gen_linedeftypes + { + include("Boom_generalized.cfg", "gen_linedeftypes"); + } + + // GENERALIZED SECTOR TYPES + gen_sectortypes + { + include("Boom_generalized.cfg", "gen_sectortypes"); + include("Eternity_generalized.cfg", "gen_sectortypes"); + } + + // DEFAULT SECTOR BRIGHTNESS LEVELS + sectorbrightness + { + include("Doom_misc.cfg", "sectorbrightness"); + } + + // SECTOR TYPES + sectortypes + { + include("Doom_sectors.cfg"); + } + + // LINEDEF FLAGS + linedefflags + { + include("Doom_misc.cfg", "linedefflags"); + include("Boom_misc.cfg", "linedefflags"); + include("Eternity_misc.cfg", "linedefflags"); + } + + // LINEDEF ACTIVATIONS + linedefactivations + { + } + + // Linedef flags UDMF translation table + // This is needed for copy/paste and prefabs to work properly + // When the UDMF field name is prefixed with ! it is inverted + linedefflagstranslation + { + include("Doom_misc.cfg", "linedefflagstranslation"); + include("Boom_misc.cfg", "linedefflagstranslation"); + } + + // LINEDEF TYPES + linedeftypes + { + include("Doom_linedefs.cfg"); + include("Boom_linedefs.cfg"); + include("Eternity_linedefs.cfg", "doom"); + } + + // THING FLAGS + thingflags + { + include("Doom_misc.cfg", "thingflags"); + include("Boom_misc.cfg", "thingflags"); + include("Eternity_misc.cfg", "thingflags"); + } + + // Thing flags UDMF translation table + // This is needed for copy/paste and prefabs to work properly + // When the UDMF field name is prefixed with ! it is inverted + thingflagstranslation + { + include("Doom_misc.cfg", "thingflagstranslation"); + include("Boom_misc.cfg", "thingflagstranslation"); + } + // How to compare thing flags (for the stuck things error checker) + thingflagscompare + { + include("Boom_misc.cfg", "thingflagscompare"); + } + + // Things flags masks + include("Doom_misc.cfg", "thingflagsmasks"); + +} +// *********************************************************** +// * * +// * Text map format * +// * * +// *********************************************************** + +mapformat_udmf +{ + // The format interface handles the map data format + formatinterface = "UniversalMapSetIO"; + + //mxd. The default script compiler to use + defaultscriptcompiler = "zdoom_acs.cfg"; + + // Enables support for long (> 8 chars) texture names + // WARNING: this should only be enabled for UDMF game configurations! + // WARNING: enabling this will make maps incompatible with Doom Builder 2 and can lead to problems in Slade 3! + longtexturenames = true; + + // Default nodebuilder configurations + defaultsavecompiler = "zdbsp_udmf_normal"; + defaulttestcompiler = "zdbsp_udmf_fast"; + + // ioanch: eternity + engine = "eternity"; // override that so that DB2 uses the correct namespace + + maplumpnames + { + include("UDMF_misc.cfg", "udmfmaplumpnames_begin"); + include("ZDoom_misc.cfg", "udmfmaplumpnames"); + include("UDMF_misc.cfg", "udmfmaplumpnames_end"); + } + + // eternity + universalfields + { + include("Eternity_misc.cfg", "universalfields"); + } + + // When this is set to true, sectors with the same tag will light up when a line is highlighted + linetagindicatesectors = false; + + // Special linedefs + include("ZDoom_misc.cfg", "speciallinedefs_udmf"); // same in EE + + // Default flags for first new thing + defaultthingflags + { + include("Eternity_misc.cfg", "defaultthingflags_udmf"); + } + + // Door making + include("Eternity_misc.cfg", "doormaking_udmf"); + + // Generalized actions + generalizedlinedefs = false; + + // SECTOR FLAGS + sectorflags + { + include("Eternity_misc.cfg", "sectorflags_udmf"); + } + + // DEFAULT SECTOR BRIGHTNESS LEVELS + sectorbrightness + { + include("ZDoom_misc.cfg", "sectorbrightness"); + } + + // SECTOR TYPES + sectortypes + { + include("Eternity_misc.cfg", "sectors_udmf"); + } + + // SECTOR RENSERSTYLES + sectorrenderstyles + { + include("UDMF_misc.cfg", "sectorrenderstyles"); + } + + // LINEDEF FLAGS + linedefflags + { + include("Eternity_misc.cfg", "linedefflags_udmf"); + } + + // LINEDEF ACTIVATIONS + linedefactivations + { + include("Eternity_misc.cfg", "linedefactivations_udmf"); + } + + //mxd. Linedef flags UDMF translation table + // This is needed for copy/paste and prefabs to work properly + // When the UDMF field name is prefixed with ! it is inverted + linedefflagstranslation + { + include("Doom_misc.cfg", "linedefflagstranslation"); + include("Hexen_misc.cfg", "linedefflagstranslation"); + include("ZDoom_misc.cfg", "linedefflagstranslation"); + } + + // LINEDEF RENSERSTYLES + linedefrenderstyles + { + include("UDMF_misc.cfg", "linedefrenderstyles"); + } + + //SIDEDEF FLAGS + sidedefflags + { + include("Eternity_misc.cfg", "sidedefflags"); + } + + // THING FLAGS + thingflags + { + include("Eternity_misc.cfg", "thingflags_udmf"); + } + + // THING RENSERSTYLES + thingrenderstyles + { + include("UDMF_misc.cfg", "thingrenderstyles"); + } + + // How to compare thing flags (for the stuck things error checker) + thingflagscompare + { + include("Eternity_misc.cfg", "thingflagscompare_udmf"); + } + + //mxd. Thing flags UDMF translation table + // This is needed for copy/paste and prefabs to work properly + // When the UDMF field name is prefixed with ! it is inverted + thingflagstranslation + { + include("Doom_misc.cfg", "thingflagstranslation"); + include("Hexen_misc.cfg", "thingflagstranslation"); + include("ZDoom_misc.cfg", "thingflagstranslation"); + } + + // Things flags masks + include("Hexen_misc.cfg", "thingflagsmasks"); + + // LINEDEF TYPES + linedeftypes + { + include("Hexen_linedefs.cfg"); + include("Eternity_linedefs.cfg", "udmf"); + } + +} \ No newline at end of file diff --git a/Build/Configurations/Includes/Eternity_generalized.cfg b/Build/Configurations/Includes/Eternity_generalized.cfg new file mode 100644 index 000000000..667307d42 --- /dev/null +++ b/Build/Configurations/Includes/Eternity_generalized.cfg @@ -0,0 +1,14 @@ +gen_sectortypes +{ + allsounds + { + 0 = "sounds in sector are normal"; + 1024 = "sounds in sector are suppressed"; + } + + movementsounds + { + 0 = "floor/ceiling normal"; + 2048 = "floor/ceiling silent"; + } +} \ No newline at end of file diff --git a/Build/Configurations/Includes/Eternity_linedefs.cfg b/Build/Configurations/Includes/Eternity_linedefs.cfg new file mode 100644 index 000000000..e5a435407 --- /dev/null +++ b/Build/Configurations/Includes/Eternity_linedefs.cfg @@ -0,0 +1,2668 @@ +doom +{ + pillar + { + title = "Pillars"; + 362 + { + title = "Pillar Build"; + prefix = "--"; + } + 363 + { + title = "Pillar Build and Crush"; + prefix = "--"; + } + 364 + { + title = "Pillar Open"; + prefix = "--"; + } + } + polyobject + { + title = "Polyobjects"; + 348 + { + title = "Polyobject Start Line"; + prefix = "--"; + } + 349 + { + title = "Polyobject Explicit Line"; + prefix = "--"; + } + 350 + { + title = "Polyobject door slide"; + prefix = "--"; + } + 351 + { + title = "Polyobject door swing"; + prefix = "--"; + } + 352 + { + title = "Polyobject move"; + prefix = "--"; + } + 353 + { + title = "Polyobject override move"; + prefix = "--"; + } + 354 + { + title = "Polyobject rotate right"; + prefix = "--"; + } + 355 + { + title = "Polyobject override rotate right"; + prefix = "--"; + } + 356 + { + title = "Polyobject rotate left"; + prefix = "--"; + } + 357 + { + title = "Polyobject override rotate left"; + prefix = "--"; + } + } + thing + { + title = "Things"; + 398 + { + title = "Thing spawn"; + prefix = "--"; + } + 399 + { + title = "Thing spawn no fog"; + prefix = "--"; + } + 402 + { + title = "Thing projectile"; + prefix = "--"; + } + 403 + { + title = "Thing projectile gravity"; + prefix = "--"; + } + 404 + { + title = "Thing activate"; + prefix = "--"; + } + 405 + { + title = "Thing deactivate"; + prefix = "--"; + } + 421 + { + title = "Thing change TID"; + prefix = "--"; + } + } + transfer + { + title = "Transfer"; + 281 + { + prefix = "--"; + title = "Transfer floor to 3dmidtex"; + } + 282 + { + prefix = "--"; + title = "Transfer ceiling to 3dmidtex"; + } + } + hereticwind + { + title = "Heretic wind"; + 293 + { + prefix = "--"; + title = "Heretic wind by line vector"; + } + 294 + { + prefix = "--"; + title = "Heretic current by line vector"; + } + } + portal + { + title = "Portal"; + 283 + { + prefix = "--"; + title = "Portal plane ceilings"; + } + 284 + { + prefix = "--"; + title = "Portal plane floors"; + } + 285 + { + prefix = "--"; + title = "Portal plane floors/ceilings"; + } + 286 + { + prefix = "--"; + title = "Portal horizon ceilings"; + } + 287 + { + prefix = "--"; + title = "Portal horizon floors"; + } + 288 + { + prefix = "--"; + title = "Portal horizon floors/ceilings"; + } + 290 + { + prefix = "--"; + title = "Portal skybox ceilings"; + } + 291 + { + prefix = "--"; + title = "Portal skybox floors"; + } + 292 + { + prefix = "--"; + title = "Portal skybox floors/ceilings"; + } + 295 + { + prefix = "--"; + title = "Portal anchored ceilings"; + } + 296 + { + prefix = "--"; + title = "Portal anchored floors"; + } + 297 + { + prefix = "--"; + title = "Portal anchored floors/ceilings"; + } + 298 + { + prefix = "--"; + title = "Portal anchor for 295 and 297"; + } + 299 + { + prefix = "--"; + title = "Portal anchor for 296"; + } + 344 + { + prefix = "--"; + title = "Portal two-way anchored ceilings"; + } + 345 + { + prefix = "--"; + title = "Portal two-way anchored floors"; + } + 346 + { + prefix = "--"; + title = "Portal anchor for 344"; + } + 347 + { + prefix = "--"; + title = "Portal anchor for 345"; + } + 289 + { + prefix = "--"; + title = "Portal transfer"; + } + 358 + { + prefix = "--"; + title = "Portal linked ceilings"; + } + 359 + { + prefix = "--"; + title = "Portal linked floors"; + } + 360 + { + prefix = "--"; + title = "Portal linked anchor for 358"; + } + 361 + { + prefix = "--"; + title = "Portal linked anchor for 359"; + } + 376 + { + prefix = "--"; + title = "Portal linked apply to lines"; + } + 377 + { + prefix = "--"; + title = "Portal linked anchor for 376"; + } + 385 + { + prefix = "--"; + title = "Portal linked apply front sector"; + } + } + + slopes + { + title = "Slopes"; + 386 + { + prefix = "--"; + title = "Slope front sector to floor"; + } + 387 + { + prefix = "--"; + title = "Slope front sector to ceiling"; + } + 388 + { + prefix = "--"; + title = "Slope front sector to floor/ceiling"; + } + 389 + { + prefix = "--"; + title = "Slope back sector to floor"; + } + 390 + { + prefix = "--"; + title = "Slope back sector to ceiling"; + } + 391 + { + prefix = "--"; + title = "Slope back sector to floor/ceiling"; + } + 392 + { + prefix = "--"; + title = "Slope back floor and front ceiling"; + } + 393 + { + prefix = "--"; + title = "Slope back ceiling and front floor"; + } + 394 + { + prefix = "--"; + title = "Slope front floor to tagged slope"; + } + 395 + { + prefix = "--"; + title = "Slope front ceiling to tagged slope"; + } + 396 + { + prefix = "--"; + title = "Slope front floor/ceiling to tagged slope"; + } + } + surfaces + { + title = "Attached surfaces"; + 379 + { + prefix = "--"; + title = "Attach set ceiling control"; + } + 380 + { + prefix = "--"; + title = "Attach set floor control"; + } + 381 + { + prefix = "--"; + title = "Attach floor to control"; + } + 382 + { + prefix = "--"; + title = "Attach ceiling to control"; + } + 383 + { + prefix = "--"; + title = "Attach mirror floor to control"; + } + 384 + { + prefix = "--"; + title = "Attach mirror ceiling to control"; + } + } + + exit + { + title = "Exit"; + 400 + { + prefix = "--"; + title = "Teleport end game"; + } + } + + scripts + { + title = "Scripts"; + 280 + { + prefix = "WR"; + title = "Script start"; + } + 273 + { + prefix = "WR"; + title = "Script start 1-way"; + } + 274 + { + prefix = "W1"; + title = "Script start"; + } + 275 + { + prefix = "W1"; + title = "Script start 1-way"; + } + 276 + { + prefix = "SR"; + title = "Script start"; + } + 277 + { + prefix = "S1"; + title = "Script start"; + } + 278 + { + prefix = "GR"; + title = "Script start"; + } + 279 + { + prefix = "G1"; + title = "Script start"; + } + 365 + { + prefix = "--"; + title = "Script execute param"; + } + 366 + { + prefix = "--"; + title = "Script suspend param"; + } + 367 + { + prefix = "--"; + title = "Script terminate param"; + } + } + extradata + { + title = "ExtraData"; + 270 + { + prefix = "--"; + title = "ExtraData linedef"; + } + } +} + +udmf +{ + polyobj + { + title = "Polyobjects"; + + 87 + { + title = "Polyobject Stop"; + id = "Polyobj_Stop"; + arg0 + { + title = "Polyobject Number"; + type = 25; + } + } + } + + line + { + title = "Line"; + + 9 + { + title = "Line Horizon"; + id = "Line_Horizon"; + requiresactivation = false; + } + + } + + door + { + + 249 + { + title = "Door Close Wait Open"; + id = "Door_CloseWaitOpen"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "flat_speeds"; + default = 16; + } + arg2 + { + title = "Delay"; + type = 11; + enum = "generic_door_delays"; + default = 34; + } + arg3 + { + title = "Light Tag"; + type = 13; + } + } + } + + floor + { + 37 + { + title = "Floor Move to Value"; + id = "Floor_MoveToValue"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Target Height"; + } + arg3 + { + title = "Change"; + type = 11; + enum = "change"; + } + arg4 + { + title = "Crush Damage"; + } + } + + 138 + { + title = "Floor Waggle"; + id = "Floor_Waggle"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Amplitude"; + } + arg2 + { + title = "Frequency"; + } + arg3 + { + title = "Phase Offset (0-63)"; + } + arg4 + { + title = "Duration"; + type = 11; + enum = "delay_seconds"; + default = 5; + } + } + + 200 + { + title = "Floor Generic Change"; + id = "Generic_Floor"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Movement Amount"; + } + arg3 + { + title = "Target"; + type = 11; + enum + { + 0 = "Move by Movement Amount"; + 1 = "Highest neighboring floor"; + 2 = "Lowest neighboring floor"; + 3 = "Nearest neighboring floor"; + 4 = "Lowest neighboring ceiling"; + 5 = "Sector ceiling"; + 6 = "Move by the height of sector's shortest lower texture"; + } + } + arg4 + { + title = "Flags"; + type = 26; + enum + { + 0 = "Don't copy anything"; + 1 = "Copy floor texture, remove sector special"; + 2 = "Copy floor texture"; + 3 = "Copy floor texture and special"; + } + flags + { + 4 = "Use numeric model if set, trigger model if not"; + 8 = "Raise floor if set, lower it if not"; + 16 = "Inflict crushing damage"; + } + } + } + + 235 + { + title = "Transfer Floor Texture and Special form Back Side"; + id = "Floor_TransferTrigger"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + 236 + { + title = "Transfer Floor Texture and Special using Numeric Change Model"; + id = "Floor_TransferNumeric"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + 238 + { + title = "Floor Raise to Lowest Ceiling"; + id = "Floor_RaiseToLowestCeiling"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Change"; + type = 11; + enum = "change"; + } + arg3 + { + title = "Crushing Damage"; + } + arg4 + { + title = "Gap to ceiling"; + } + } + + 240 + { + title = "Floor Raise by Texture"; + id = "Floor_RaiseByTexture"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Change"; + type = 11; + enum = "change"; + } + } + + 242 + { + title = "Floor Lower to Highest Floor (ZDoom)"; + id = "Floor_LowerToHighest"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Adjust Target Height"; + } + arg3 + { + title = "Force Adjust"; + type = 11; + enum = "noyes"; + } + } + + 256 + { + title = "Floor Lower to Highest Floor"; + id = "Floor_LowerToHighestEE"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Change"; + type = 11; + enum = "change"; + } + } + + 250 + { + title = "Floor Donut"; + id = "Floor_Donut"; + + arg0 + { + title = "Center Sector Tag"; + type = 13; + } + arg1 + { + title = "Pillar Lower Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Stairs Raise Speed"; + type = 11; + enum = "stair_speeds"; + default = 4; + } + } + + 251 + { + title = "Floor and Ceiling Lower and Raise"; + id = "FloorAndCeiling_LowerRaise"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Floor Lowering Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Ceiling Raising Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Emulate Boom Bug"; + type = 11; + enum + { + 0 = "No"; + 1998 = "Yes"; + } + } + } + } + + stairs + { + + + 217 + { + title = "Stairs Build up (Doom mode)"; + id = "Stairs_BuildUpDoom"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "stair_speeds"; + default = 4; + } + arg2 + { + title = "Step Height"; + } + arg3 + { + title = "Build Step Delay"; + type = 11; + enum = "delay_tics"; + default = 35; + } + arg4 + { + title = "Reset Delay"; + type = 11; + enum = "reset_tics"; + } + } + } + + + pillar + { + 94 // Pillar_BuildAndCrush + { + arg3 + { + title = "Crush Damage"; + default = 100; + } + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + } + } + + ceiling + { + title = "Ceiling"; + + 42 // Ceiling Crusher Start + { + arg3 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + } + 43 // Ceiling Crush Once + { + arg3 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + + } + + 97 + { + title = "Ceiling Lower And Crush Dist"; + id = "Ceiling_LowerAndCrushDist"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + + } + + arg2 + { + title = "Crush Damage"; + default = 100; + } + + arg3 + { + title = "Lip"; + } + + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + } + + 104 + { + title = "Ceiling Crush And Raise Dist"; + id = "Ceiling_CrushAndRaiseSilentDist"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + + arg1 + { + title = "Lip"; + } + + arg2 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + + arg3 + { + title = "Crush Damage"; + default = 100; + } + + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + } + + 45 // Ceiling Crush Once and Open + { + arg3 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + + } + 47 + { + title = "Ceiling Move to Value"; + id = "Ceiling_MoveToValue"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Target Height"; + } + arg3 + { + title = "Change"; + type = 11; + enum = "change"; + } + } + + 192 + { + title = "Ceiling Lower to Highest Floor"; + id = "Ceiling_LowerToHighestFloor"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Change"; + type = 11; + enum = "change"; + } + arg3 + { + title = "Crushing Damage"; + } + arg4 + { + title = "Gap to Floor"; + } + } + 193 + { + title = "Ceiling Lower Instantly by Value * 8"; + id = "Ceiling_LowerInstant"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg2 + { + title = "Lower by (* 8)"; + } + } + 194 + { + title = "Ceiling Raise Instantly by Value * 8"; + id = "Ceiling_RaiseInstant"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg2 + { + title = "Raise by (* 8)"; + } + } + 195 + { + title = "Ceiling Crush Once and Open A"; + id = "Ceiling_CrushRaiseAndStayA"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Lower Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raise Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Crush Damage"; + default = 100; + } + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + + } + 196 + { + title = "Ceiling Crush Start A"; + id = "Ceiling_CrushAndRaiseA"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Lower Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raise Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Crush Damage"; + default = 100; + } + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + + } + 197 + { + title = "Ceiling Crush Start A (silent)"; + id = "Ceiling_CrushAndRaiseSilentA"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Lower Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raise Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Crush Damage"; + default = 100; + } + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + + } + 198 + { + title = "Ceiling Raise by Value * 8"; + id = "Ceiling_RaiseByValueTimes8"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raise by (* 8)"; + } + } + 199 + { + title = "Ceiling Lower by Value * 8"; + id = "Ceiling_LowerByValueTimes8"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Lower by (* 8)"; + } + } + + 201 + { + title = "Ceiling Generic Change"; + id = "Generic_Ceiling"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Movement Amount"; + } + arg3 + { + title = "Target"; + type = 11; + enum + { + 0 = "Move by Movement Amount"; + 1 = "Highest neighboring ceiling"; + 2 = "Lowest neighboring ceiling"; + 3 = "Nearest neighboring ceiling"; + 4 = "Highest neighboring floor"; + 5 = "Sector floor"; + 6 = "Move by the height of sector's shortest upper texture"; + } + } + arg4 + { + title = "Flags"; + type = 26; + enum + { + 0 = "Don't copy anything"; + 1 = "Copy ceiling texture, remove sector special"; + 2 = "Copy ceiling texture"; + 3 = "Copy ceiling texture and special"; + } + flags + { + 4 = "Use numeric model if set, trigger model if not"; + 8 = "Raise ceiling if set, lower it if not"; + 16 = "Inflict crushing damage"; + } + } + } + 205 + { + title = "Ceiling Generic Crush (Doom mode)"; + id = "Generic_Crusher"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Lowering Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raising Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Silent"; + type = 11; + enum = "noyes"; + } + arg4 + { + title = "Crush Damage"; + default = 100; + } + } + 252 + { + title = "Ceiling Raise to Nearest Ceiling"; + id = "Ceiling_RaiseToNearest"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Change"; + type = 11; + enum = "change"; + } + } + 253 + { + title = "Ceiling Lower to Lowest Ceiling"; + id = "Ceiling_LowerToLowest"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Change"; + type = 11; + enum = "change"; + } + arg3 + { + title = "Crushing damage"; + } + } + 254 + { + title = "Ceiling Lower to Floor"; + id = "Ceiling_LowerToFloor"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Change"; + type = 11; + enum = "change"; + } + arg3 + { + title = "Crushing Damage"; + } + arg4 + { + title = "Gap to Floor"; + } + } + 255 + { + title = "Ceiling Crush Once and Open A (silent)"; + id = "Ceiling_CrushRaiseAndStaySilA"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Lowering Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raising Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Crush Damage"; + default = 100; + } + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + } + } + + transfer + { + title = "Transfer"; + + 209 + { + title = "Transfer Heights"; + id = "Transfer_Heights"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + + 210 + { + title = "Transfer Floor Brightness"; + id = "Transfer_FloorLight"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + 211 + { + title = "Transfer Ceiling Brightness"; + id = "Transfer_CeilingLight"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + } + + platform + { + 206 + { + title = "Platform Lower Wait Raise (lip)"; + id = "Plat_DownWaitUpStayLip"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Reverse Delay (tics)"; + type = 11; + enum = "delay_tics"; + default = 35; + } + arg3 + { + title = "Lip Amount"; + } + } + 207 + { + title = "Platform Perpetual Move (lip)"; + id = "Plat_PerpetualRaiseLip"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Reverse Delay (tics)"; + type = 11; + enum = "delay_tics"; + default = 35; + } + arg3 + { + title = "Lip Amount"; + } + } + 228 + { + title = "Platform Raise Tx0"; + id = "Plat_RaiseAndStayTx0"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Lockout Mode"; + type = 11; + enum + { + 0 = "Lockout in Heretic only"; + 1 = "Don't lockout"; + 2 = "Lockout in all games"; + } + } + } + 230 + { + title = "Platform Raise by Value Tx (* 8)"; + id = "Plat_UpByValueStayTx"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raise by (* 8)"; + } + } + 231 + { + title = "Platform Toggle Ceiling"; + id = "Plat_ToggleCeiling"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + } + + teleport + { + title = "Teleport"; + + 71 // Teleport_NoFog + { + arg1 + { + title = "Teleport Dest. angle usage"; + type = 11; + enum + { + 0 = "Don't change angle and velocity (Hexen-compat)"; + 1 = "Always use the teleport exit's angle (Strife-compat)"; + 2 = "Adjust relatively to the teleport exit's angle, but in the wrong direction (Boom-compat)"; + 3 = "Adjust relatively to the teleport exit's angle (Boom-fixed)"; + } + } + arg3 + { + title = "Keep rel. Height"; + type = 11; + enum = "noyes"; + } + } + 74 // Teleport_NewMap + { + arg2 + { + title = "Keep Orientation"; + type = 11; + enum = "noyes"; + } + } + 215 + { + title = "Teleport to Line"; + id = "Teleport_Line"; + + arg1 + { + title = "Target Line Tag"; + type = 15; + } + arg2 + { + title = "Reverse Angle"; + type = 11; + enum = "noyes"; + } + } + } + + thing + { + 17 + { + title = "Thing Raise"; + id = "Thing_Raise"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + } + 19 + { + title = "Thing Stop"; + id = "Thing_Stop"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + } + 72 // ThrustThing + { + arg2 + { + title = "No Limit"; + type = 11; + enum = "noyes"; + } + arg3 + { + title = "Target Thing Tag"; + type = 14; + } + } + 73 // DamageThing + { + arg1 + { + title = "Death"; + type = 11; + enum = "death_types"; + } + } + 119 + { + title = "Damage Thing by Tag"; + id = "Thing_Damage"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + arg1 + { + title = "Damage"; + default = 100; + } + arg2 + { + title = "Death"; + type = 11; + enum = "death_types"; + } + } + 128 + { + title = "Thing Thrust Z"; + id = "ThrustThingZ"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + arg1 + { + title = "Force"; + } + arg2 + { + title = "Down/Up"; + type = 11; + enum = "updown"; + } + arg3 + { + title = "Set/Add"; + type = 11; + enum = "setadd"; + } + } + 135 // Thing_Spawn + { + arg3 + { + title = "New Thing Tag"; + type = 14; + } + } + 137 // Thing_SpawnNoFog + { + arg3 + { + title = "New Thing Tag"; + type = 14; + } + } + 176 + { + title = "Change Thing Tag"; + id = "Thing_ChangeTID"; + + arg0 + { + title = "Old Thing Tag"; + type = 14; + } + arg1 + { + title = "New Thing Tag"; + type = 14; + } + } + 248 + { + title = "Heal Thing"; + id = "HealThing"; + + arg0 + { + title = "Heal Amount"; + } + arg1 + { + title = "Max health"; + } + } + + } + + script + { + title = "Script"; + + 83 // Script Locked Execute + { + arg4 // Key Number + { + type = 11; + enum = "keys"; + } + } + 84 + { + title = "Script Execute with Result"; + id = "ACS_ExecuteWithResult"; + + arg0 + { + title = "Script Number"; + } + arg1 + { + title = "Script Argument 1"; + } + arg2 + { + title = "Script Argument 2"; + } + arg3 + { + title = "Script Argument 3"; + } + arg4 + { + title = "Script Argument 4"; + } + } + 226 + { + title = "Script Execute Always"; + id = "ACS_ExecuteAlways"; + + arg0 + { + title = "Script Number"; + } + + arg1 + { + title = "Map Number"; + } + + arg2 + { + title = "Script Argument 1"; + } + + arg3 + { + title = "Script Argument 2"; + } + + arg4 + { + title = "Script Argument 3"; + } + } + } + + end + { + 243 + { + title = "End Normal"; + id = "Exit_Normal"; + + arg0 + { + title = "Position"; + } + } + 244 + { + title = "End Secret"; + id = "Exit_Secret"; + + arg0 + { + title = "Position"; + } + } + } + + scroll + { + title = "Scroll"; + + 100 //Scroll_Texture_Left + { + arg1 + { + title = "Sidedef Part"; + type = 12; + enum = "sidedef_part"; + } + } + + 101 //Scroll_Texture_Right + { + arg1 + { + title = "Sidedef Part"; + type = 12; + enum = "sidedef_part"; + } + } + + 102 //Scroll_Texture_Up + { + arg1 + { + title = "Sidedef Part"; + type = 12; + enum = "sidedef_part"; + } + } + + 103 //Scroll_Texture_Down + { + arg1 + { + title = "Sidedef Part"; + type = 12; + enum = "sidedef_part"; + } + } + + 222 + { + title = "Scroll Texture Model"; + id = "Scroll_Texture_Model"; + requiresactivation = false; + + arg1 + { + title = "Options"; + type = 12; + enum + { + 1 = "Displacement"; + 2 = "Accelerative"; + } + } + } + + 223 + { + title = "Scroll Floor"; + id = "Scroll_Floor"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Options"; + type = 12; + enum + { + 1 = "Displacement"; + 2 = "Accelerative"; + 4 = "Scroll by linedef dx/dy"; + } + } + arg2 + { + title = "Scroll"; + type = 11; + enum + { + 0 = "Texture only"; + 1 = "Things only"; + 2 = "Both"; + } + } + arg3 + { + title = "Horizontal Speed"; + default = 128; + type = 11; + enum = "sector_scroll_speeds_x"; + } + arg4 + { + title = "Vertical Speed"; + default = 128; + type = 11; + enum = "sector_scroll_speeds_y"; + } + } + 224 + { + title = "Scroll Ceiling"; + id = "Scroll_Ceiling"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Options"; + type = 12; + enum + { + 1 = "Displacement"; + 2 = "Accelerative"; + 4 = "Scroll by linedef dx/dy"; + } + } + arg3 + { + title = "Horizontal Speed"; + default = 128; + type = 11; + enum = "sector_scroll_speeds_x"; + } + arg4 + { + title = "Vertical Speed"; + default = 128; + type = 11; + enum = "sector_scroll_speeds_y"; + } + } + 225 + { + title = "Scroll Texture by Offsets"; + id = "Scroll_Texture_Offsets"; + requiresactivation = false; + + arg0 + { + title = "Sidedef Part"; + type = 12; + enum = "sidedef_part"; + } + } + } + + + light + { + 232 + { + title = "Light Strobe (Doom mode)"; + id = "Light_StrobeDoom"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Brightest Duration (tics)"; + type = 11; + enum = "delay_tics"; + default = 35; + } + arg2 + { + title = "Darkest Duration (tics)"; + type = 11; + enum = "delay_tics"; + default = 35; + } + } + 233 + { + title = "Light Change to Darkest Neightbour"; + id = "Light_MinNeighbor"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + 234 + { + title = "Light Change to Brightest Neightbour"; + id = "Light_MaxNeighbor"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + } + + sector + { + title = "Sector"; + + 48 + { + title = "Sector Attach 3D Midtex"; + id = "Sector_Attach3dMidtex"; + requiresactivation = false; + + arg0 + { + title = "Line Tag"; + type = 15; + } + arg1 + { + title = "Sector Tag"; + type = 13; + } + arg2 + { + title = "Floor / Ceiling"; + type = 11; + enum = "floorceiling"; + } + } + + 57 + { + title = "Sector Set Portal"; + id = "Sector_SetPortal"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Portal Type"; + type = 11; + enum + { + 0 = "Link to portal with same tag"; + 1 = "Copy portal from second tag"; + 2 = "Eternity-style skybox portal"; + 3 = "Plane portal"; + 4 = "Horizon portal"; + 5 = "Copy portal to line"; + 6 = "Linked portal"; + } + } + arg2 + { + title = "Plane"; + type = 11; + enum + { + 0 = "Floor"; + 1 = "Ceiling"; + 2 = "Both"; + 3 = "Any (\"Copy portal\" types only)"; + } + } + arg3 + { + title = "Misc"; + tooltip = "For type 0 portal: specifies whether the line belongs to the sector viewed\nthrough the portal (1) or the sector in which the portal is seen (0).\nFor type 1 portal: specifies the sector tag of the portal to copy."; + } + arg4 + { + title = "Opacity"; + } + } + 185 + { + title = "Sector Rotate Flat"; + id = "Sector_SetRotation"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Floor Angle"; + type = 8; + } + arg2 + { + title = "Ceiling Angle"; + type = 8; + } + } + 186 + { + title = "Sector Ceiling Panning"; + id = "Sector_SetCeilingPanning"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Horizontal Integral"; + } + arg2 + { + title = "Horizontal Fractional"; + } + arg3 + { + title = "Vertical Integral"; + } + arg4 + { + title = "Vertical Fractional"; + } + } + 187 + { + title = "Sector Floor Panning"; + id = "Sector_SetFloorPanning"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Horizontal Integral"; + } + arg2 + { + title = "Horizontal Fractional"; + } + arg3 + { + title = "Vertical Integral"; + } + arg4 + { + title = "Vertical Fractional"; + } + } + 188 + { + title = "Sector Ceiling Scale"; + id = "Sector_SetCeilingScale"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Horizontal Integral"; + } + arg2 + { + title = "Horizontal Fractional"; + } + arg3 + { + title = "Vertical Integral"; + } + arg4 + { + title = "Vertical Fractional"; + } + } + 189 + { + title = "Sector Floor Scale"; + id = "Sector_SetFloorScale"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Horizontal Integral"; + } + arg2 + { + title = "Horizontal Fractional"; + } + arg3 + { + title = "Vertical Integral"; + } + arg4 + { + title = "Vertical Fractional"; + } + } + 218 + { + title = "Sector Wind"; + id = "Sector_SetWind"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Wind Strength"; + } + arg2 + { + title = "Wind Angle"; + type = 22; + } + arg3 + { + title = "Use Line Vector"; + type = 11; + enum = "noyes"; + } + } + 219 + { + title = "Sector Friction"; + id = "Sector_SetFriction"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Friction Amount"; + type = 11; + enum + { + 0 = "Use Line Length"; + 1 = "Very Sludgy"; + 50 = "Sludgy"; + 100 = "Normal"; + 200 = "Icy"; + 255 = "Very Icy"; + } + } + } + + 220 + { + title = "Sector Current"; + id = "Sector_SetCurrent"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Current Strength"; + } + arg2 + { + title = "Current Angle"; + type = 22; + } + arg3 + { + title = "Use Line Vector"; + type = 11; + enum = "noyes"; + } + } + } + + change + { + title = "Change"; + + 179 + { + title = "Change Skill"; + id = "ChangeSkill"; + + arg0 + { + title = "New Skill Level"; + type = 11; + enum + { + 0 = "Very Easy"; + 1 = "Easy"; + 2 = "Normal"; + 3 = "Hard"; + 4 = "Nightmare!"; + } + } + } + } + + plane + { + title = "Plane"; + + 181 + { + title = "Plane Align (slope)"; + id = "Plane_Align"; + requiresactivation = false; + + arg0 + { + title = "Align Floor"; + type = 11; + enum + { + 0 = "None"; + 1 = "Front"; + 2 = "Back"; + } + } + arg1 + { + title = "Align Ceiling"; + type = 11; + enum + { + 0 = "None"; + 1 = "Front"; + 2 = "Back"; + } + } + } + } + + static + { + title = "Static"; + + 190 + { + title = "Static Init"; + id = "Static_Init"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Property"; + type = 11; + enum + { + 0 = "Set the gravity to the length of the linedef"; + 1 = "Set the light or fog color in a sector"; + 2 = "Set damage to the length of the linedef"; + 3 = "Define a sector link"; + 255 = "Use the line's upper texture as the sky in any tagged sectors"; + } + } + arg2 + { + title = "Flip Sky / Ceiling"; + } + arg3 + { + title = "Movement Type"; + } + } + } + + elevator + { + title = "Elevator"; + + 245 + { + title = "Elevator Raise to Nearest Floor"; + id = "Elevator_RaiseToNearest"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + } + 246 + { + title = "Elevator Move to Activated Floor"; + id = "Elevator_MoveToFloor"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + } + 247 + { + title = "Elevator Lower to Nearest Floor"; + id = "Elevator_LowerToNearest"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + } + } + polyobj + { + 1 // Polyobject Start Line + { + arg3 + { + title = "Set Line ID"; + type = 0; + } + } + 5 // Polyobject Explicit Line + { + arg4 + { + title = "Set Line ID"; + type = 0; + } + } + } + plane + { + 181 //Plane_Align + { + arg2 + { + title = "Set Line ID"; + type = 0; + } + } + } + scroll + { + 52 //Scroll_Wall + { + arg0 + { + title = "Set Line ID"; + type = 0; + } + } + 221 //Scroll_Texture_Both + { + arg0 + { + title = "Line ID"; + type = 0; + } + } + 222 //Scroll_Texture_Model + { + arg0 + { + title = "Set Line ID"; + type = 0; + } + } + } + sector + { + 48 //Sector_Attach3dMidtex + { + arg0 + { + title = "Line ID"; + type = 0; + } + } + } + teleport + { + 215 //Teleport_Line + { + arg0 + { + title = "Line ID"; + type = 0; + } + arg1 + { + title = "Target Line ID"; + type = 0; + } + } + } +} \ No newline at end of file diff --git a/Build/Configurations/Includes/Eternity_misc.cfg b/Build/Configurations/Includes/Eternity_misc.cfg new file mode 100644 index 000000000..3b289567f --- /dev/null +++ b/Build/Configurations/Includes/Eternity_misc.cfg @@ -0,0 +1,4217 @@ +linedefflags +{ + 1024 = "3D middle texture"; +} + +thingflags +{ + 128 = "Friendly"; + 512 = "Dormant"; +} + +/* +ADDITIONAL UNIVERSAL DOOM MAP FORMAT FIELD DEFINITIONS +Only add fields here that Doom Builder does not edit with its own user-interface! +The "default" field must match the UDMF specifications! + +Field data types: +0 = integer * +1 = float +2 = string +3 = bool +4 = linedef action (integer) * +5 = sector effect (integer) * +6 = texture (string) +7 = flat (string) +8 = angle in degrees (integer) +9 = angle in radians (float) +10 = XXRRGGBB color (integer) +11 = enum option (integer) * +12 = enum bits (integer) * +13 = sector tag (integer) * +14 = thing tag (integer) * +15 = linedef tag (integer) * +16 = enum option (string) +17 = angle in degrees (float) +22 = byte angle (integer) +*/ +universalfields +{ + linedef + { + comment + { + type = 2; + default = ""; + } + } + + sidedef + { + comment + { + type = 2; + default = ""; + } + } + + thing + { + comment + { + type = 2; + default = ""; + } + } + + sector + { + comment + { + type = 2; + default = ""; + } + } +} + +defaultthingflags_udmf +{ + skill1; + skill2; + skill3; + skill4; + skill5; + single; + coop; + dm; + class1; + class2; + class3; +} + +doormaking_udmf +{ + makedooraction = 12; // See linedeftypes + makedoorflags { playeruse; repeatspecial; } + makedoorarg0 = 0; + makedoorarg1 = 16; + makedoorarg2 = 150; + makedoorarg3 = 0; + makedoorarg4 = 0; +} + +sectorflags_udmf +{ + secret = "Secret"; + lightfloorabsolute = "Floor light setting is absolute"; + lightceilingabsolute = "Ceiling light setting is absolute"; + damage_endgodmode = "Damage disables god mode cheat"; + damage_exitlevel = "Damage and exit level when < 10%"; + damageterraineffect = "Spawn terrain splashes on damage"; + portal_ceil_disabled = "Disable ceiling portal"; + portal_ceil_norender = "Don't display ceiling portal"; + portal_ceil_nopass = "Blocking ceiling linked portal"; + portal_ceil_blocksound = "Ceiling linked portal blocks sound"; + portal_ceil_useglobaltex = "Ceiling portal uses global texture"; + portal_floor_disabled = "Disable floor portal"; + portal_floor_norender = "Don't display floor portal"; + portal_floor_nopass = "Blocking floor linked portal"; + portal_floor_blocksound = "Floor portal blocks sound"; + portal_floor_useglobaltex = "Floor portal uses global texture"; +} + +// These are instead of Doom sector types in UDMF and Hexen format +sectors_udmf +{ + 0 = "None"; + 1 = "Light Phased"; + 2 = "Light Sequence Start"; + 3 = "Light Sequence Special 1"; + 4 = "Light Sequence Special 2"; + 40 = "Wind East weak"; + 41 = "Wind East medium"; + 42 = "Wind East strong"; + 43 = "Wind North weak"; + 44 = "Wind North medium"; + 45 = "Wind North strong"; + 46 = "Wind South weak"; + 47 = "Wind South medium"; + 48 = "Wind South strong"; + 49 = "Wind West weak"; + 50 = "Wind West medium"; + 51 = "Wind West strong"; + 65 = "Light Flicker"; + 66 = "Light Strobe Fast"; + 67 = "Light Strobe Slow"; + 68 = "Light Strobe Hurt -20% health"; + 69 = "Damage Hellslime -10% health"; + 71 = "Damage Nukage -5% health"; + 72 = "Light Glow"; + 74 = "Sector Door Close (30 sec)"; + 75 = "Damage End Level -20% health"; + 76 = "Light StrobeSlowSync"; + 77 = "Light StrobeFastSync"; + 78 = "Sector Door Raise (5 min)"; + 79 = "Low Friction"; + 80 = "Damage Super Hellslime -20% health"; + 81 = "Light Fire Flicker"; + 82 = "Damage -5% health (no protection)"; + 83 = "Damage -8% health (no protection)"; + 84 = "Scroll east + -2 or -5% health (no protection)"; + 85 = "Damage Sludge -4% health"; + 225 = "Carry East Slow"; + 226 = "Carry East Med.Slow"; + 227 = "Carry East Medium"; + 228 = "Carry East Med.Fast"; + 229 = "Carry East Fast"; + 230 = "Carry North Slow"; + 231 = "Carry North Med.Slow"; + 232 = "Carry North Medium"; + 233 = "Carry North Med.Fast"; + 234 = "Carry North Fast"; + 235 = "Carry South Slow"; + 236 = "Carry South Med.Slow"; + 237 = "Carry South Medium"; + 238 = "Carry South Med.Fast"; + 239 = "Carry South Fast"; + 240 = "Carry West Slow"; + 241 = "Carry West Med.Slow"; + 242 = "Carry West Medium"; + 243 = "Carry West Med.Fast"; + 244 = "Carry West Fast"; +} + +linedefflags_udmf +{ + twosided = "Doublesided"; + dontpegtop = "Upper unpegged"; + dontpegbottom = "Lower unpegged"; + blocking = "Impassable"; + blockeverything = "Block everything"; + blockmonsters = "Block monsters"; + blocksound = "Block sound"; + jumpover = "Jump-over railing"; + clipmidtex = "Clip middle texture"; + midtex3d = "Walkable middle texture"; + midtex3dimpassible = "Projectile shoot-through middle texture"; + mapped = "Initially shown on map"; + secret = "Shown as 1-sided on map"; + dontdraw = "Not shown on map"; + translucent = "Translucent (obsolete)"; + zoneboundary = "Sound zone boundary"; +} + +linedefactivations_udmf +{ + repeatspecial = "Repeatable action"; + playeruse = "When player presses use"; + playercross = "When player walks over"; + playerpush = "When player bumps"; + monsteruse = "When monster presses use"; + monstercross = "When monster walks over"; + monsterpush = "When monsters bumps"; + missilecross = "When projectile crosses"; + impact = "On projectile impact"; + passuse = "Pass use on"; + firstsideonly = "Front side only"; +} + +sidedefflags +{ + +} + +// Basic UDMF stuff. +thingflags_udmf +{ + skill1 = "Skill 1"; + skill2 = "Skill 2"; + skill3 = "Skill 3"; + skill4 = "Skill 4"; + skill5 = "Skill 5"; + single = "Singleplayer"; + coop = "Cooperative"; + dm = "Deathmatch"; + friend = "Friendly (MBF logic)"; + strifeally = "Friendly (Strife logic)"; + ambush = "Ambush players"; + standing = "Stand still"; + dormant = "Dormant"; + translucent = "Translucent (25%)"; + invisible = "Invisible"; +} + +// How thing flags should be compared (for the stuck thing error check) +thingflagscompare_udmf +{ + skills + { + skill1; + skill2; + skill3; + skill4; + skill5; + } + + gamemodes + { + single { requiredgroups = "skills"; } + coop { requiredgroups = "skills"; } + dm { ignoredgroups = "skills"; } + } + + classes + { + class1; + class2; + class3; + } +} + +linedefs_eternity_udmf +{ + polyobj + { + title = "Polyobjects"; + + 59 + { + title = "Polyobject Move to Spot (override)"; + id = "Polyobj_OR_MoveToSpot"; + arg0 + { + title = "Polyobject Number"; + type = 25; + } + arg1 + { + title = "Speed (mu. per octic)"; + type = 11; + enum = "stair_speeds"; + default = 16; + } + arg2 + { + title = "Target MapSpot Tag"; + type = 14; + targetclasses = "MapSpot,MapSpotGravity"; + } + } + 86 + { + title = "Polyobject Move to Spot"; + id = "Polyobj_MoveToSpot"; + arg0 + { + title = "Polyobject Number"; + type = 25; + } + arg1 + { + title = "Speed (mu. per octic)"; + type = 11; + enum = "stair_speeds"; + default = 16; + } + arg2 + { + title = "Target MapSpot Tag"; + type = 14; + targetclasses = "MapSpot,MapSpotGravity"; + } + } + 87 + { + title = "Polyobject Stop"; + id = "Polyobj_Stop"; + arg0 + { + title = "Polyobject Number"; + type = 25; + } + } + 88 + { + title = "Polyobject Move to"; + id = "Polyobj_MoveTo"; + arg0 + { + title = "Polyobject Number"; + type = 25; + } + arg1 + { + title = "Speed (mu. per octic)"; + type = 11; + enum = "stair_speeds"; + default = 16; + } + arg2 + { + title = "Target X Pos"; + } + arg3 + { + title = "Target Y Pos"; + } + } + 89 + { + title = "Polyobject Move to (override)"; + id = "Polyobj_OR_MoveTo"; + arg0 + { + title = "Polyobject Number"; + type = 25; + } + arg1 + { + title = "Speed (mu. per octic)"; + type = 11; + enum = "stair_speeds"; + default = 16; + } + arg2 + { + title = "Target X Pos"; + } + arg3 + { + title = "Target Y Pos"; + } + } + } + + line + { + title = "Line"; + + 9 + { + title = "Line Horizon"; + id = "Line_Horizon"; + requiresactivation = false; + } + 121 // Line Identification + { + arg1 + { + title = "Flags"; + type = 12; + enum + { + 1 = "Sound zone boundary"; + 2 = "Jump-over railing"; + 4 = "Block floating monsters"; + 8 = "Clip middle texture"; + 16 = "Wrap middle texture"; + 32 = "Walkable middle texture"; + 64 = "Switch height check"; + 128 = "Front side only"; + } + } + arg4 + { + title = "Line ID High"; + } + } + 182 + { + title = "Line Mirror"; + id = "Line_Mirror"; + requiresactivation = false; + } + 156 + { + title = "Line Set Portal"; + id = "Line_SetPortal"; + requiresactivation = false; + + arg0 + { + title = "Exit Line Tag"; + tooltip = "The tag number of the line that will act as the \"exit\" of the current portal"; + type = 15; + } + arg2 + { + title = "Portal Type"; + type = 11; + enum + { + 0 = "Visual only"; + 1 = "Visual + simple teleporter"; + 2 = "Interactive"; + 3 = "Static (Eternity style)"; + } + } + arg3 + { + title = "Plane Align"; + tooltip = "Determines how the planes at the other side of the portal are relative to this line"; + type = 11; + enum + { + 0 = "None"; + 1 = "Floors"; + 2 = "Ceilings"; + } + } + } + 107 + { + title = "Line Set Portal Target"; + id = "Line_SetPortalTarget"; + + arg0 + { + title = "Source Line Tag"; + type = 15; + } + arg1 + { + title = "Target Line Tag"; + type = 15; + } + } + } + + door + { + 14 + { + title = "Door Animated"; + id = "Door_Animated"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Animation Speed"; + type = 11; + enum = "door_speeds"; + default = 16; + } + arg2 + { + title = "Close Delay"; + type = 11; + enum = "reset_tics"; + default = 150; + } + arg3 + { + title = "Lock"; + type = 11; + enum = "keys"; + } + } + 202 + { + title = "Door Generic"; + id = "Generic_Door"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "flat_speeds"; + default = 16; + } + arg2 + { + title = "Type"; + type = 26; + enum + { + 0 = "Open Close"; + 1 = "Open Stay"; + 2 = "Close Open"; + 3 = "Close Stay"; + } + flags + { + 64 = "No retrigger"; + 128 = "Tag is light tag"; + } + } + arg3 + { + title = "Delay"; + type = 11; + enum = "generic_door_delays"; + default = 34; + } + arg4 + { + title = "Lock"; + type = 11; + enum = "keys"; + } + } + + 249 + { + title = "Door Close Wait Open"; + id = "Door_CloseWaitOpen"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "flat_speeds"; + default = 16; + } + arg2 + { + title = "Delay"; + type = 11; + enum = "generic_door_delays"; + default = 34; + } + arg3 + { + title = "Light Tag"; + type = 13; + } + } + } + + autosave + { + title = "Autosave"; + + 15 + { + title = "Autosave"; + id = "Autosave"; + } + } + + floor + { + 28 // Floor Crusher Start + { + arg3 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + } + 37 + { + title = "Floor Move to Value"; + id = "Floor_MoveToValue"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Target Height"; + } + arg3 + { + title = "Negative Height"; + type = 11; + enum = "noyes"; + } + } + + 138 + { + title = "Floor Waggle"; + id = "Floor_Waggle"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Amplitude"; + } + arg2 + { + title = "Frequency"; + } + arg3 + { + title = "Phase Offset (0-63)"; + } + arg4 + { + title = "Duration"; + type = 11; + enum = "delay_seconds"; + default = 5; + } + } + + 200 + { + title = "Floor Generic Change"; + id = "Generic_Floor"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Movement Amount"; + } + arg3 + { + title = "Target"; + type = 11; + enum + { + 0 = "Move by Movement Amount"; + 1 = "Highest neighboring floor"; + 2 = "Lowest neighboring floor"; + 3 = "Nearest neighboring floor"; + 4 = "Lowest neighboring ceiling"; + 5 = "Sector ceiling"; + 6 = "Move by the height of sector's shortest lower texture"; + } + } + arg4 + { + title = "Flags"; + type = 26; + enum + { + 0 = "Don't copy anything"; + 1 = "Copy floor texture, remove sector special"; + 2 = "Copy floor texture"; + 3 = "Copy floor texture and special"; + } + flags + { + 4 = "Use numeric model if set, trigger model if not"; + 8 = "Raise floor if set, lower it if not"; + 16 = "Inflict crushing damage"; + } + } + } + + 235 + { + title = "Transfer Floor Texture and Special form Back Side"; + id = "Floor_TransferTrigger"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + 236 + { + title = "Transfer Floor Texture and Special using Numeric Change Model"; + id = "Floor_TransferNumeric"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + 238 + { + title = "Floor Raise to Lowest Ceiling"; + id = "Floor_RaiseToLowestCeiling"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + } + 239 + { + title = "Floor Raise by TxTy"; + id = "Floor_RaiseByValueTxTy"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raise by"; + } + } + + 240 + { + title = "Floor Raise by Texture"; + id = "Floor_RaiseByTexture"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + } + + 241 + { + title = "Floor Lower to Lowest TxTy"; + id = "Floor_LowerToLowestTxTy"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + } + + 242 + { + title = "Floor Lower to Highest Floor"; + id = "Floor_LowerToHighest"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Adjust Target Height"; + } + arg3 + { + title = "Force Adjust"; + type = 11; + enum = "noyes"; + } + } + 250 + { + title = "Floor Donut"; + id = "Floor_Donut"; + + arg0 + { + title = "Center Sector Tag"; + type = 13; + } + arg1 + { + title = "Pillar Lower Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Stairs Raise Speed"; + type = 11; + enum = "stair_speeds"; + default = 4; + } + } + + 251 + { + title = "Floor and Ceiling Lower and Raise"; + id = "FloorAndCeiling_LowerRaise"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Floor Lowering Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Ceiling Raising Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Emulate Boom Bug"; + type = 11; + enum + { + 0 = "No"; + 1998 = "Yes"; + } + } + } + } + + stairs + { + 204 + { + title = "Stairs Generic Build"; + id = "Generic_Stairs"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "stair_speeds"; + default = 4; + } + arg2 + { + title = "Step Height"; + } + arg3 + { + title = "Options"; + type = 12; + enum + { + 1 = "Upwards"; + 2 = "Ignore Floor Texture"; + } + } + arg4 + { + title = "Reset Delay"; + type = 11; + enum = "reset_tics"; + } + } + + 217 + { + title = "Stairs Build up (Doom mode)"; + id = "Stairs_BuildUpDoom"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "stair_speeds"; + default = 4; + } + arg2 + { + title = "Step Height"; + } + arg3 + { + title = "Build Step Delay"; + type = 11; + enum = "delay_tics"; + default = 35; + } + arg4 + { + title = "Reset Delay"; + type = 11; + enum = "reset_tics"; + } + } + } + + + pillar + { + 94 // Pillar_BuildAndCrush + { + arg3 + { + title = "Crush Damage"; + default = 100; + } + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + } + } + + + forcefield + { + title = "Forcefield"; + + 33 + { + title = "Forcefield Set"; + id = "ForceField"; + requiresactivation = false; + } + 34 + { + title = "Forcefield Remove"; + id = "ClearForceField"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + } + + + ceiling + { + title = "Ceiling"; + + 38 + { + title = "Ceiling Waggle"; + id = "Ceiling_Waggle"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Amplitude (in 1/8 mu.)"; + default = 128; + } + arg2 + { + title = "Frequency"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Phase Offset (0-63)"; + } + arg4 + { + title = "Duration"; + type = 11; + enum = "delay_seconds"; + default = 5; + } + } + 42 // Ceiling Crusher Start + { + arg3 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + } + 43 // Ceiling Crush Once + { + arg3 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + + } + + 97 + { + title = "Ceiling Lower And Crush Dist"; + id = "Ceiling_LowerAndCrushDist"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + + } + + arg2 + { + title = "Crush Damage"; + default = 100; + } + + arg3 + { + title = "Lip"; + } + + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + } + + 104 + { + title = "Ceiling Crush And Raise Dist"; + id = "Ceiling_CrushAndRaiseSilentDist"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + + arg1 + { + title = "Lip"; + } + + arg2 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + + arg3 + { + title = "Crush Damage"; + default = 100; + } + + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + } + + 45 // Ceiling Crush Once and Open + { + arg3 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + + } + 47 + { + title = "Ceiling Move to Value"; + id = "Ceiling_MoveToValue"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Target Height"; + } + arg3 + { + title = "Negative Height"; + type = 11; + enum = "noyes"; + } + } + 169 + { + title = "Ceiling Generic Crush (Hexen mode)"; + id = "Generic_Crusher2"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Lower Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raise Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Silent"; + type = 11; + enum = "noyes"; + } + arg4 + { + title = "Crush Damage"; + default = 100; + } + } + 192 + { + title = "Ceiling Lower to Highest Floor"; + id = "Ceiling_LowerToHighestFloor"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + } + 193 + { + title = "Ceiling Lower Instantly by Value * 8"; + id = "Ceiling_LowerInstant"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg2 + { + title = "Lower by (* 8)"; + } + } + 194 + { + title = "Ceiling Raise Instantly by Value * 8"; + id = "Ceiling_RaiseInstant"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg2 + { + title = "Raise by (* 8)"; + } + } + 195 + { + title = "Ceiling Crush Once and Open A"; + id = "Ceiling_CrushRaiseAndStayA"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Lower Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raise Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Crush Damage"; + default = 100; + } + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + + } + 196 + { + title = "Ceiling Crush Start A"; + id = "Ceiling_CrushAndRaiseA"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Lower Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raise Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Crush Damage"; + default = 100; + } + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + + } + 197 + { + title = "Ceiling Crush Start A (silent)"; + id = "Ceiling_CrushAndRaiseSilentA"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Lower Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raise Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Crush Damage"; + default = 100; + } + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + + } + 198 + { + title = "Ceiling Raise by Value * 8"; + id = "Ceiling_RaiseByValueTimes8"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raise by (* 8)"; + } + } + 199 + { + title = "Ceiling Lower by Value * 8"; + id = "Ceiling_LowerByValueTimes8"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Lower by (* 8)"; + } + } + + 201 + { + title = "Ceiling Generic Change"; + id = "Generic_Ceiling"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Movement Amount"; + } + arg3 + { + title = "Target"; + type = 11; + enum + { + 0 = "Move by Movement Amount"; + 1 = "Highest neighboring ceiling"; + 2 = "Lowest neighboring ceiling"; + 3 = "Nearest neighboring ceiling"; + 4 = "Highest neighboring floor"; + 5 = "Sector floor"; + 6 = "Move by the height of sector's shortest upper texture"; + } + } + arg4 + { + title = "Flags"; + type = 26; + enum + { + 0 = "Don't copy anything"; + 1 = "Copy ceiling texture, remove sector special"; + 2 = "Copy ceiling texture"; + 3 = "Copy ceiling texture and special"; + } + flags + { + 4 = "Use numeric model if set, trigger model if not"; + 8 = "Raise ceiling if set, lower it if not"; + 16 = "Inflict crushing damage"; + } + } + } + 205 + { + title = "Ceiling Generic Crush (Doom mode)"; + id = "Generic_Crusher"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Lowering Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raising Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Silent"; + type = 11; + enum = "noyes"; + } + arg4 + { + title = "Crush Damage"; + default = 100; + } + } + 252 + { + title = "Ceiling Raise to Nearest Ceiling"; + id = "Ceiling_RaiseToNearest"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + } + 253 + { + title = "Ceiling Lower to Lowest Ceiling"; + id = "Ceiling_LowerToLowest"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + } + 254 + { + title = "Ceiling Lower to Floor"; + id = "Ceiling_LowerToFloor"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + } + 255 + { + title = "Ceiling Crush Once and Open A (silent)"; + id = "Ceiling_CrushRaiseAndStaySilA"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Lowering Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raising Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg3 + { + title = "Crush Damage"; + default = 100; + } + arg4 + { + title = "Crush Mode"; + type = 11; + enum = "crush_mode"; + } + } + } + + breakable + { + title = "Breakable"; + + 49 + { + title = "Breakable Glass"; + id = "GlassBreak"; + + arg0 + { + title = "Spawn Glass Shards"; + type = 11; + enum = "yesno"; + } + } + } + + transfer + { + title = "Transfer"; + + 50 + { + title = "Transfer Brightness Level"; + id = "ExtraFloor_LightOnly"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Options"; + type = 11; + enum + { + 0 = "From control sector's ceiling down to the top of another type 0 light"; + 1 = "From control sector's ceiling down to control sector's floor"; + 2 = "From control sector's ceiling down to the top of another extra light"; + } + } + } + 209 + { + title = "Transfer Heights"; + id = "Transfer_Heights"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Options"; + type = 12; + enum + { + 0 = "Boom mode"; + 1 = "Use fake ceiling/floor"; + 2 = "Draw fake floor only"; + 4 = "Inside sector only"; + 8 = "Swimmable below fake"; + 16 = "Do not draw"; + 32 = "Keep lighting"; + } + } + } + + 210 + { + title = "Transfer Floor Brightness"; + id = "Transfer_FloorLight"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + 211 + { + title = "Transfer Ceiling Brightness"; + id = "Transfer_CeilingLight"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + 16 + { + title = "Transfer Wall Brightness"; + id = "Transfer_WallLight"; + requiresactivation = false; + + arg0 + { + title = "Line Tag"; + type = 15; + } + arg1 + { + title = "Flags"; + type = 12; + enum + { + 1 = "Transfer light level to front side"; + 2 = "Transfer light level to back side"; + 4 = "Ignore fake contrast"; + } + } + } + + } + + platform + { + 172 + { + title = "Platform Raise to Nearest Wait Lower"; + id = "Plat_UpNearestWaitDownStay"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Reverse Delay (tics)"; + type = 11; + enum = "delay_tics"; + default = 35; + } + } + 203 + { + title = "Platform Generic Change"; + id = "Generic_Lift"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Reverse Delay (tics)"; + type = 11; + enum = "delay_tics"; + default = 35; + } + arg3 + { + title = "Type"; + type = 11; + enum = "generic_lift_types"; + } + arg4 + { + title = "Movement Amount"; + } + } + 206 + { + title = "Platform Lower Wait Raise (lip)"; + id = "Plat_DownWaitUpStayLip"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Reverse Delay (tics)"; + type = 11; + enum = "delay_tics"; + default = 35; + } + arg3 + { + title = "Lip Amount"; + } + arg4 + { + title = "Sound Type"; + type = 11; + enum = "plat_sound"; + } + } + 207 + { + title = "Platform Perpetual Move (lip)"; + id = "Plat_PerpetualRaiseLip"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Reverse Delay (tics)"; + type = 11; + enum = "delay_tics"; + default = 35; + } + arg3 + { + title = "Lip Amount"; + } + } + 228 + { + title = "Platform Raise Tx0"; + id = "Plat_RaiseAndStayTx0"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Lockout Mode"; + type = 11; + enum + { + 0 = "Lockout in Heretic only"; + 1 = "Don't lockout"; + 2 = "Lockout in all games"; + } + } + } + 230 + { + title = "Platform Raise by Value Tx (* 8)"; + id = "Plat_UpByValueStayTx"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + arg2 + { + title = "Raise by (* 8)"; + } + } + 231 + { + title = "Platform Toggle Ceiling"; + id = "Plat_ToggleCeiling"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + } + + teleport + { + title = "Teleport"; + + 39 + { + title = "Teleport to Pain State (silent)"; + id = "Teleport_ZombieChanger"; + + arg0 + { + title = "Target Teleport Dest. Tag"; + type = 14; + targetclasses = "TeleportDest,TeleportDest2,TeleportDest3"; + } + arg1 + { + title = "Target Sector Tag"; + type = 13; + } + } + 70 // Teleport + { + arg2 + { + title = "Source Fog"; + type = 11; + enum = "yesno"; + } + } + 71 // Teleport_NoFog + { + arg1 + { + title = "Teleport Dest. angle usage"; + type = 11; + enum + { + 0 = "Don't change angle and velocity (Hexen-compat)"; + 1 = "Always use the teleport exit's angle (Strife-compat)"; + 2 = "Adjust relatively to the teleport exit's angle, but in the wrong direction (Boom-compat)"; + 3 = "Adjust relatively to the teleport exit's angle (Boom-fixed)"; + } + } + arg3 + { + title = "Keep rel. Height"; + type = 11; + enum = "noyes"; + } + } + 74 // Teleport_NewMap + { + arg2 + { + title = "Keep Orientation"; + type = 11; + enum = "noyes"; + } + } + 76 + { + title = "Teleport Other"; + id = "TeleportOther"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + arg1 + { + title = "Target MapSpot Tag"; + type = 14; + targetclasses = "MapSpot,MapSpotGravity"; + } + arg2 + { + title = "Fog"; + type = 11; + enum = "noyes"; + } + } + 77 + { + title = "Teleport Group"; + id = "TeleportGroup"; + + arg0 + { + title = "Thing Tag"; + tooltip = "The TID of the actor(s) to teleport.\nIf 0, teleports the activator only."; + type = 14; + } + arg1 + { + title = "Source Teleport Dest. Tag"; + type = 14; + targetclasses = "TeleportDest,TeleportDest2,TeleportDest3"; + } + arg2 + { + title = "Target Teleport Dest. Tag"; + type = 14; + targetclasses = "TeleportDest,TeleportDest2,TeleportDest3"; + } + arg3 + { + title = "Move Source"; + type = 11; + enum = "noyes"; + } + arg4 + { + title = "Fog"; + type = 11; + enum = "noyes"; + } + } + 78 + { + title = "Teleport in Sector"; + id = "TeleportInSector"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Source Tag"; + tooltip = "The spot relative to which to teleport."; + type = 14; + } + arg2 + { + title = "Target Teleport Dest. Tag"; + type = 14; + targetclasses = "TeleportDest,TeleportDest2,TeleportDest3"; + } + arg3 + { + title = "Fog"; + type = 11; + enum = "noyes"; + } + arg4 + { + title = "Group Thing Tag"; + tooltip = "The TID of the thing(s) to teleport.\nIf 0, teleports all actors in the sector"; + type = 14; + } + } + 154 + { + title = "Teleport (no Stop)"; + id = "Teleport_NoStop"; + + arg0 + { + title = "Target Teleport Dest. Tag"; + type = 14; + targetclasses = "TeleportDest,TeleportDest2,TeleportDest3"; + } + arg1 + { + title = "Target Sector Tag"; + type = 13; + } + arg2 + { + title = "Fog"; + type = 11; + enum = "yesno"; + } + } + 215 + { + title = "Teleport to Line"; + id = "Teleport_Line"; + + arg1 + { + title = "Target Line Tag"; + type = 15; + } + arg2 + { + title = "Reverse Angle"; + type = 11; + enum = "noyes"; + } + } + } + + thing + { + 17 + { + title = "Thing Raise"; + id = "Thing_Raise"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + } + 18 + { + title = "Start Conversation"; + id = "StartConversation"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + arg1 + { + title = "Face Talker"; + type = 11; + enum = "noyes"; + default = 1; + } + } + 19 + { + title = "Thing Stop"; + id = "Thing_Stop"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + } + 72 // ThrustThing + { + arg2 + { + title = "No Limit"; + type = 11; + enum = "noyes"; + } + arg3 + { + title = "Target Thing Tag"; + type = 14; + } + } + 73 // DamageThing + { + arg1 + { + title = "Death"; + type = 11; + enum = "death_types"; + } + } + 79 + { + title = "Set Conversation"; + id = "Thing_SetConversation"; + arg0 + { + title = "Thing Tag"; + type = 14; + } + arg1 + { + title = "Conversation ID"; + } + } + 119 + { + title = "Damage Thing by Tag"; + id = "Thing_Damage"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + arg1 + { + title = "Damage"; + default = 100; + } + arg2 + { + title = "Death"; + type = 11; + enum = "death_types"; + } + } + 125 + { + title = "Move Thing"; + id = "Thing_Move"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + arg1 + { + title = "Target Thing Tag"; + type = 14; + } + arg2 + { + title = "Fog"; + type = 11; + enum = "yesno"; + } + } + 127 + { + title = "Thing Set Special"; + id = "Thing_SetSpecial"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + arg1 + { + title = "Special"; + type = 4; + } + arg2 + { + title = "Arg 1"; + } + arg3 + { + title = "Arg 2"; + } + arg4 + { + title = "Arg 3"; + } + } + 128 + { + title = "Thing Thrust Z"; + id = "ThrustThingZ"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + arg1 + { + title = "Force"; + } + arg2 + { + title = "Down/Up"; + type = 11; + enum = "updown"; + } + arg3 + { + title = "Set/Add"; + type = 11; + enum = "setadd"; + } + } + 135 // Thing_Spawn + { + arg3 + { + title = "New Thing Tag"; + type = 14; + } + } + 137 // Thing_SpawnNoFog + { + arg3 + { + title = "New Thing Tag"; + type = 14; + } + } + 139 + { + title = "Spawn Thing Facing"; + id = "Thing_SpawnFacing"; + + arg0 + { + title = "Mapspot Tag"; + type = 14; + targetclasses = "MapSpot,MapSpotGravity"; + } + arg1 + { + title = "Spawn Thing"; + type = 11; + enum = "spawnthing"; + } + arg2 + { + title = "Fog"; + type = 11; + enum = "yesno"; + } + arg3 + { + title = "New Thing Tag"; + type = 14; + } + } + 175 + { + title = "Spawn Projectile (Intercept)"; + id = "Thing_ProjectileIntercept"; + + arg0 + { + title = "Mapspot Tag"; + type = 14; + targetclasses = "MapSpot,MapSpotGravity"; + } + arg1 + { + title = "Projectile Type"; + type = 11; + enum = "spawn_projectile"; + } + arg2 + { + title = "Speed"; + } + arg3 + { + title = "Target Thing Tag"; + type = 14; + } + arg4 + { + title = "New Thing Tag"; + type = 14; + } + } + 176 + { + title = "Change Thing Tag"; + id = "Thing_ChangeTID"; + + arg0 + { + title = "Old Thing Tag"; + type = 14; + } + arg1 + { + title = "New Thing Tag"; + type = 14; + } + } + 177 + { + title = "Thing Hate"; + id = "Thing_Hate"; + + arg0 + { + title = "Hater Tag"; + type = 14; + } + arg1 + { + title = "Hatee Tag"; + type = 14; + } + arg2 + { + title = "Hate"; + type = 11; + enum + { + 0 = "Target only"; + 1 = "Target and Player"; + 2 = "Forced Target and Player"; + 3 = "Hunt Target and Player"; + 4 = "Forced Hunt Target and Player"; + 5 = "Target, Ignore Player"; + 6 = "Forced Target, Ignore Player"; + } + } + } + 178 + { + title = "Spawn Aimed Projectile"; + id = "Thing_ProjectileAimed"; + + arg0 + { + title = "Mapspot Tag"; + type = 14; + targetclasses = "MapSpot,MapSpotGravity"; + } + arg1 + { + title = "Projectile Type"; + type = 11; + enum = "spawn_projectile"; + } + arg2 + { + title = "Speed"; + } + arg3 + { + title = "Target Thing Tag"; + type = 14; + } + arg4 + { + title = "New Thing Tag"; + type = 14; + } + } + 180 + { + title = "Set Thing Translation"; + id = "Thing_SetTranslation"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + arg1 + { + title = "Translation Index"; + } + } + 229 + { + title = "Thing Set Goal"; + id = "Thing_SetGoal"; + + arg0 + { + title = "Monster Thing Tag"; + type = 14; + } + arg1 + { + title = "Target Thing Tag"; + type = 14; + } + arg2 + { + title = "Delay"; + type = 11; + enum + { + 0 = "No Delay"; + 1 = "1 Second"; + 2 = "2 Seconds"; + 3 = "3 Seconds"; + 5 = "5 Seconds"; + 10 = "10 Seconds"; + 15 = "15 Seconds"; + 20 = "20 Seconds"; + 25 = "25 Seconds"; + 30 = "30 Seconds"; + 60 = "1 Minute"; + } + } + arg3 + { + title = "Don't Chase Target"; + type = 11; + enum = "falsetrue"; + } + } + 248 + { + title = "Heal Thing"; + id = "HealThing"; + + arg0 + { + title = "Heal Amount"; + } + } + + } + + script + { + title = "Script"; + + 83 // Script Locked Execute + { + arg4 // Key Number + { + type = 11; + enum = "keys"; + } + } + 84 + { + title = "Script Execute with Result"; + id = "ACS_ExecuteWithResult"; + + arg0 + { + title = "Script Number"; + } + arg1 + { + title = "Script Argument 1"; + } + arg2 + { + title = "Script Argument 2"; + } + arg3 + { + title = "Script Argument 3"; + } + arg4 + { + title = "Script Argument 4"; + } + } + 85 + { + title = "Script Locked Execute (Door message)"; + id = "ACS_LockedExecuteDoor"; + + arg0 + { + title = "Script Number"; + } + + arg1 + { + title = "Map Number"; + } + + arg2 + { + title = "Script Argument 1"; + } + + arg3 + { + title = "Script Argument 2"; + } + + arg4 + { + title = "Key Number"; + type = 11; + enum = "keys"; + } + } + 158 + { + title = "FraggleScript Execute"; + id = "FS_Execute"; + + arg0 + { + title = "Script Number"; + } + arg1 + { + title = "Side"; + type = 11; + enum + { + 0 = "Both"; + 1 = "Front"; + } + } + arg2 + { + title = "Key"; + type = 11; + enum = "keys"; + } + arg3 + { + title = "Message"; + type = 11; + enum + { + 0 = "Open door"; + 1 = "Activate object"; + } + } + } + 226 + { + title = "Script Execute Always"; + id = "ACS_ExecuteAlways"; + + arg0 + { + title = "Script Number"; + } + + arg1 + { + title = "Map Number"; + } + + arg2 + { + title = "Script Argument 1"; + } + + arg3 + { + title = "Script Argument 2"; + } + + arg4 + { + title = "Script Argument 3"; + } + } + } + + end + { + 243 + { + title = "End Normal"; + id = "Exit_Normal"; + + arg0 + { + title = "Position"; + } + } + 244 + { + title = "End Secret"; + id = "Exit_Secret"; + + arg0 + { + title = "Position"; + } + } + } + + scroll + { + title = "Scroll"; + + 52 + { + title = "Scroll Wall"; + id = "Scroll_Wall"; + requiresactivation = false; + + arg0 + { + title = "Line Tag"; + type = 15; + } + arg1 + { + title = "Horizontal speed"; + } + arg2 + { + title = "Vertical speed"; + } + arg3 + { + title = "Side"; + type = 11; + enum = "frontback"; + } + arg4 + { + title = "Flags"; + type = 12; + enum + { + 1 = "Scroll upper"; + 2 = "Scroll middle"; + 4 = "Scroll lower"; + } + } + } + + 100 //Scroll_Texture_Left + { + arg1 + { + title = "Sidedef Part"; + type = 12; + enum = "sidedef_part"; + } + } + + 101 //Scroll_Texture_Right + { + arg1 + { + title = "Sidedef Part"; + type = 12; + enum = "sidedef_part"; + } + } + + 102 //Scroll_Texture_Up + { + arg1 + { + title = "Sidedef Part"; + type = 12; + enum = "sidedef_part"; + } + } + + 103 //Scroll_Texture_Down + { + arg1 + { + title = "Sidedef Part"; + type = 12; + enum = "sidedef_part"; + } + } + + 221 + { + title = "Scroll Texture Both"; + id = "Scroll_Texture_Both"; + requiresactivation = false; + + arg0 + { + title = "Line Tag"; + type = 15; + } + arg1 + { + title = "Left Speed"; + type = 11; + enum = "scroll_speeds"; + } + arg2 + { + title = "Right Speed"; + type = 11; + enum = "scroll_speeds"; + } + arg3 + { + title = "Down Speed"; + type = 11; + enum = "scroll_speeds"; + } + arg4 + { + title = "Up Speed"; + type = 11; + enum = "scroll_speeds"; + } + } + 222 + { + title = "Scroll Texture Model"; + id = "Scroll_Texture_Model"; + requiresactivation = false; + + arg1 + { + title = "Options"; + type = 12; + enum + { + 1 = "Displacement"; + 2 = "Accelerative"; + } + } + } + + 223 + { + title = "Scroll Floor"; + id = "Scroll_Floor"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Options"; + type = 12; + enum + { + 1 = "Displacement"; + 2 = "Accelerative"; + 4 = "Scroll by linedef dx/dy"; + } + } + arg2 + { + title = "Scroll"; + type = 11; + enum + { + 0 = "Texture only"; + 1 = "Things only"; + 2 = "Both"; + } + } + arg3 + { + title = "Horizontal Speed"; + default = 128; + type = 11; + enum = "sector_scroll_speeds_x"; + } + arg4 + { + title = "Vertical Speed"; + default = 128; + type = 11; + enum = "sector_scroll_speeds_y"; + } + } + 224 + { + title = "Scroll Ceiling"; + id = "Scroll_Ceiling"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Options"; + type = 12; + enum + { + 1 = "Displacement"; + 2 = "Accelerative"; + 4 = "Scroll by linedef dx/dy"; + } + } + arg3 + { + title = "Horizontal Speed"; + default = 128; + type = 11; + enum = "sector_scroll_speeds_x"; + } + arg4 + { + title = "Vertical Speed"; + default = 128; + type = 11; + enum = "sector_scroll_speeds_y"; + } + } + 225 + { + title = "Scroll Texture by Offsets"; + id = "Scroll_Texture_Offsets"; + requiresactivation = false; + + arg0 + { + title = "Sidedef Part"; + type = 12; + enum = "sidedef_part"; + } + } + } + + + light + { + 109 + { + title = "Lightning Control"; + id = "Light_ForceLightning"; + + arg0 + { + title = "Mode"; + type = 11; + enum + { + 0 = "Enable Lightning Mode"; + 1 = "Flash Once"; + 2 = "Terminate Lightning Mode"; + } + } + } + 117 + { + title = "Light Stop"; + id = "Light_Stop"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + 232 + { + title = "Light Strobe (Doom mode)"; + id = "Light_StrobeDoom"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Brightest Duration (tics)"; + type = 11; + enum = "delay_tics"; + default = 35; + } + arg2 + { + title = "Darkest Duration (tics)"; + type = 11; + enum = "delay_tics"; + default = 35; + } + } + 233 + { + title = "Light Change to Darkest Neightbour"; + id = "Light_MinNeighbor"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + 234 + { + title = "Light Change to Brightest Neightbour"; + id = "Light_MaxNeighbor"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + } + } + + sector + { + title = "Sector"; + + 48 + { + title = "Sector Attach 3D Midtex"; + id = "Sector_Attach3dMidtex"; + requiresactivation = false; + + arg0 + { + title = "Line Tag"; + type = 15; + } + arg1 + { + title = "Sector Tag"; + type = 13; + } + arg2 + { + title = "Floor / Ceiling"; + type = 11; + enum = "floorceiling"; + } + } + 51 + { + title = "Sector Set Link"; + id = "Sector_SetLink"; + + arg0 + { + title = "Control Sector Tag"; + type = 13; + } + arg1 + { + title = "Target Sector Tag"; + type = 13; + } + arg2 + { + title = "Floor / Ceiling"; + type = 11; + enum = "floorceiling"; + } + arg3 + { + title = "Move Type"; + type = 12; + enum + { + 0 = "Unlink target sector(s) from the control sector"; + 1 = "Link target sector's floor to the specified surface of the control sector"; + 2 = "Link target sector's ceiling to the specified surface of the control sector"; + 4 = "Target floor movement is the opposite direction as the control sector's surface (requires bit 1)"; + 8 = "Target ceiling movement is the opposite direction as the control sector's surface (requires bit 2)"; + } + } + } + + 98 + { + title = "Sector Set Translucent"; + id = "Sector_SetTranslucent"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Floor / Ceiling"; + type = 11; + enum = "floorceiling"; + } + arg2 + { + title = "Opacity"; + } + arg3 + { + title = "Translucency Type"; + type = 11; + enum + { + 0 = "Normal"; + 1 = "Additive"; + } + } + } + + 54 + { + title = "Sector Change Flags"; + id = "Sector_ChangeFlags"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Set Flags"; + type = 12; + enum = "sector_flags"; + } + arg2 + { + title = "Clear Flags"; + type = 12; + enum = "sector_flags"; + } + } + 57 + { + title = "Sector Set Portal"; + id = "Sector_SetPortal"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Portal Type"; + type = 11; + enum + { + 0 = "Link to portal with same tag"; + 1 = "Copy portal from second tag"; + 2 = "Eternity-style skybox portal"; + 3 = "Plane portal"; + 4 = "Horizon portal"; + 5 = "Copy portal to line"; + 6 = "Interactive portal"; + } + } + arg2 + { + title = "Plane"; + type = 11; + enum + { + 0 = "Floor"; + 1 = "Ceiling"; + 2 = "Both"; + 3 = "Any (\"Copy portal\" types only)"; + } + } + arg3 + { + title = "Misc"; + tooltip = "For type 0 portal: specifies whether the line belongs to the sector viewed\nthrough the portal (1) or the sector in which the portal is seen (0).\nFor type 1 portal: specifies the sector tag of the portal to copy."; + } + arg4 + { + title = "Opacity"; + } + } + 58 + { + title = "Sector Copy Scroller"; + id = "Sector_CopyScroller"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Scroller Type"; + type = 12; + enum + { + 1 = "Copy ceiling scroller"; + 2 = "Copy floor scroller"; + 4 = "Copy carrying effect"; + } + } + } + 160 + { + title = "Sector Set 3D Floor"; + id = "Sector_Set3dFloor"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Type"; + type = 26; + default = 1; + enum + { + 0 = "Vavoom-Style"; + 1 = "Solid"; + 2 = "Swimmable"; + 3 = "Non-Solid"; + } + flags + { + 4 = "Render-Inside"; + 16 = "Invert Visibility Rules"; + 32 = "Invert Shootability Rules"; + } + } + arg2 + { + title = "Flags"; + type = 12; + enum + { + 1 = "Disable light effects"; + 2 = "Restrict light inside"; + 4 = "Fog effect (GZDoom only)"; + 8 = "Ignore bottom height"; + 16 = "Use upper texture"; + 32 = "Use lower texture"; + 64 = "Additive transluency"; + 512 = "Fade effect (no view blend)"; + 1024 = "Reset light effects"; + } + } + arg3 + { + title = "Opacity"; + default = 255; + } + } + 161 + { + title = "Sector Set Contents (Vavoom compatibility)"; + id = "Sector_SetContents"; + + arg0 + { + title = "Type"; + type = 11; + enum + { + 0 = "Empty"; + 1 = "Water"; + 2 = "Lava"; + 3 = "Nukage"; + 4 = "Slime"; + 5 = "Hellslime"; + 6 = "Blood"; + 7 = "Sludge"; + 8 = "Hazard"; + 9 = "Boom-style water"; + } + } + arg1 + { + title = "Translucency Percent"; + } + arg2 + { + title = "Flags"; + type = 12; + enum + { + 1 = "Don't block movement"; + 2 = "Don't block sight"; + 4 = "Don't block shooting"; + 8 = "Additive translucency"; + } + } + } + 185 + { + title = "Sector Rotate Flat"; + id = "Sector_SetRotation"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Floor Angle"; + type = 8; + } + arg2 + { + title = "Ceiling Angle"; + type = 8; + } + } + 186 + { + title = "Sector Ceiling Panning"; + id = "Sector_SetCeilingPanning"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Horizontal Integral"; + } + arg2 + { + title = "Horizontal Fractional"; + } + arg3 + { + title = "Vertical Integral"; + } + arg4 + { + title = "Vertical Fractional"; + } + } + 187 + { + title = "Sector Floor Panning"; + id = "Sector_SetFloorPanning"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Horizontal Integral"; + } + arg2 + { + title = "Horizontal Fractional"; + } + arg3 + { + title = "Vertical Integral"; + } + arg4 + { + title = "Vertical Fractional"; + } + } + 188 + { + title = "Sector Ceiling Scale"; + id = "Sector_SetCeilingScale"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Horizontal Integral"; + } + arg2 + { + title = "Horizontal Fractional"; + } + arg3 + { + title = "Vertical Integral"; + } + arg4 + { + title = "Vertical Fractional"; + } + } + 189 + { + title = "Sector Floor Scale"; + id = "Sector_SetFloorScale"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Horizontal Integral"; + } + arg2 + { + title = "Horizontal Fractional"; + } + arg3 + { + title = "Vertical Integral"; + } + arg4 + { + title = "Vertical Fractional"; + } + } + 212 + { + title = "Sector Color"; + id = "Sector_SetColor"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Red"; + } + arg2 + { + title = "Green"; + } + arg3 + { + title = "Blue"; + } + arg4 + { + title = "Desaturation"; + } + } + 213 + { + title = "Sector Fade"; + id = "Sector_SetFade"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Red"; + } + arg2 + { + title = "Green"; + } + arg3 + { + title = "Blue"; + } + } + 214 + { + title = "Sector Damage"; + id = "Sector_SetDamage"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Damage Amount"; + default = 15; + } + arg2 + { + title = "Death"; + type = 11; + enum = "death_types"; + } + } + 216 + { + title = "Sector Gravity"; + id = "Sector_SetGravity"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Gravity Integral"; + } + arg2 + { + title = "Gravity Fractional"; + } + } + + 218 + { + title = "Sector Wind"; + id = "Sector_SetWind"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Wind Strength"; + } + arg2 + { + title = "Wind Angle"; + type = 22; + } + arg3 + { + title = "Use Line Vector"; + type = 11; + enum = "noyes"; + } + } + 219 + { + title = "Sector Friction"; + id = "Sector_SetFriction"; + requiresactivation = false; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Friction Amount"; + type = 11; + enum + { + 0 = "Use Line Length"; + 1 = "Very Sludgy"; + 50 = "Sludgy"; + 100 = "Normal"; + 200 = "Icy"; + 255 = "Very Icy"; + } + } + } + + 220 + { + title = "Sector Current"; + id = "Sector_SetCurrent"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Current Strength"; + } + arg2 + { + title = "Current Angle"; + type = 22; + } + arg3 + { + title = "Use Line Vector"; + type = 11; + enum = "noyes"; + } + } + } + + alert + { + title = "Alert"; + + 173 + { + title = "Alert monsters"; + id = "NoiseAlert"; + + arg0 + { + title = "Target Tag"; + type = 14; + } + arg1 + { + title = "Emitter Tag"; + type = 14; + } + } + } + + communicator + { + title = "Communicator"; + + 174 + { + title = "Communicator Message"; + id = "SendToCommunicator"; + + arg0 + { + title = "Message ID"; + } + arg1 + { + title = "Front Side Only"; + type = 11; + enum = "noyes"; + } + arg2 + { + title = "Print Activator Name"; + type = 11; + enum = "noyes"; + } + arg3 + { + title = "Add to Log"; + type = 11; + enum = "yesno"; + } + } + } + + change + { + title = "Change"; + + 157 + { + title = "Set Global Fog Parameter (GZDoom only)"; + id = "SetGlobalFogParameter"; + + arg0 + { + title = "Property"; + type = 11; + enum + { + 0 = "Density"; + 1 = "Outside density"; + 2 = "Skyfog"; + } + } + arg1 + { + title = "Value"; + } + } + 179 + { + title = "Change Skill"; + id = "ChangeSkill"; + + arg0 + { + title = "New Skill Level"; + type = 11; + enum + { + 0 = "Very Easy"; + 1 = "Easy"; + 2 = "Normal"; + 3 = "Hard"; + 4 = "Nightmare!"; + } + } + } + } + + plane + { + title = "Plane"; + + 118 + { + title = "Plane Copy (slope)"; + id = "Plane_Copy"; + requiresactivation = false; + + arg0 + { + title = "Front Floor Tag"; + type = 13; + } + arg1 + { + title = "Front Ceiling Tag"; + type = 13; + } + arg2 + { + title = "Back Floor Tag"; + type = 13; + } + arg3 + { + title = "Back Ceiling Tag"; + type = 13; + } + arg4 + { + title = "Share Slope"; + type = 12; + enum + { + 1 = "Front floor to back sector"; + 2 = "Back floor to front sector"; + 4 = "Front ceiling to back sector"; + 8 = "Back ceiling to front sector"; + } + } + } + 159 + { + title = "Plane Reflection (OpenGL only)"; + id = "Sector_SetPlaneReflection"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Floor Reflectiveness"; + } + arg2 + { + title = "Ceiling Reflectiveness"; + } + } + 181 + { + title = "Plane Align (slope)"; + id = "Plane_Align"; + requiresactivation = false; + + arg0 + { + title = "Align Floor"; + type = 11; + enum + { + 0 = "None"; + 1 = "Front"; + 2 = "Back"; + } + } + arg1 + { + title = "Align Ceiling"; + type = 11; + enum + { + 0 = "None"; + 1 = "Front"; + 2 = "Back"; + } + } + } + } + + static + { + title = "Static"; + + 190 + { + title = "Static Init"; + id = "Static_Init"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Property"; + type = 11; + enum + { + 0 = "Set the gravity to the length of the linedef"; + 1 = "Set the light or fog color in a sector"; + 2 = "Set damage to the length of the linedef"; + 3 = "Define a sector link"; + 255 = "Use the line's upper texture as the sky in any tagged sectors"; + } + } + arg2 + { + title = "Flip Sky / Ceiling"; + } + arg3 + { + title = "Movement Type"; + } + } + } + + player + { + title = "Player"; + + 191 + { + title = "Set Player Property"; + id = "SetPlayerProperty"; + + arg0 + { + title = "Target"; + type = 11; + enum + { + 0 = "Activator"; + 1 = "Everyone"; + } + } + arg1 + { + title = "Enable"; + type = 11; + enum = "noyes"; + } + arg2 + { + title = "Property"; + type = 11; + enum + { + 0 = "PROP_FROZEN"; + 1 = "PROP_NOTARGET"; + 2 = "PROP_INSTANTWEAPONSWITCH"; + 3 = "PROP_FLY"; + 4 = "PROP_TOTALLYFROZEN"; + 16 = "PROP_BUDDHA"; + } + } + } + } + + translucent + { + title = "Translucent"; + + 208 + { + title = "Translucent Line"; + id = "TranslucentLine"; + requiresactivation = false; + + arg1 + { + title = "Opacity"; + default = 128; + } + arg2 + { + title = "Additive"; + type = 11; + enum = "noyes"; + } + } + } + + point + { + title = "Point"; + + 227 + { + title = "Point Pusher/Puller Set Force"; + id = "PointPush_SetForce"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Thing Tag"; + type = 14; + } + arg2 + { + title = "Strength"; + } + arg3 + { + title = "Use Line Vector"; + type = 11; + enum = "noyes"; + } + } + } + + camera + { + title = "Camera"; + + 237 + { + title = "Change Camera"; + id = "ChangeCamera"; + + arg0 + { + title = "Thing Tag"; + type = 14; + } + arg1 + { + title = "Target"; + type = 11; + enum + { + 0 = "Activator"; + 1 = "Everyone"; + } + } + arg2 + { + title = "Movement Cancels"; + type = 11; + enum = "noyes"; + } + } + } + + elevator + { + title = "Elevator"; + + 245 + { + title = "Elevator Raise to Nearest Floor"; + id = "Elevator_RaiseToNearest"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + } + 246 + { + title = "Elevator Move to Activated Floor"; + id = "Elevator_MoveToFloor"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + } + 247 + { + title = "Elevator Lower to Nearest Floor"; + id = "Elevator_LowerToNearest"; + + arg0 + { + title = "Sector Tag"; + type = 13; + } + arg1 + { + title = "Movement Speed"; + type = 11; + enum = "plat_speeds"; + default = 16; + } + } + } + line + { + 156 // Line_SetPortal + { + arg1 + { + title = "This Line Tag"; + tooltip = "The tag number of the current line"; + type = 15; + } + } + } + polyobj + { + 1 // Polyobject Start Line + { + arg3 + { + title = "Set Line ID"; + type = 0; + } + } + 5 // Polyobject Explicit Line + { + arg4 + { + title = "Set Line ID"; + type = 0; + } + } + } + plane + { + 181 //Plane_Align + { + arg2 + { + title = "Set Line ID"; + type = 0; + } + } + } + scroll + { + 52 //Scroll_Wall + { + arg0 + { + title = "Set Line ID"; + type = 0; + } + } + 221 //Scroll_Texture_Both + { + arg0 + { + title = "Line ID"; + type = 0; + } + } + 222 //Scroll_Texture_Model + { + arg0 + { + title = "Set Line ID"; + type = 0; + } + } + } + sector + { + 48 //Sector_Attach3dMidtex + { + arg0 + { + title = "Line ID"; + type = 0; + } + } + 160 //Sector_Set3dFloor + { + arg1 + { + title = "Type"; + type = 26; + default = 1; + enum + { + 0 = "Vavoom-Style"; + 1 = "Solid"; + 2 = "Swimmable"; + 3 = "Non-Solid"; + } + flags + { + 4 = "Render-Inside"; + 8 = "Use Arg5 as Line ID"; + 16 = "Invert Visibility Rules"; + 32 = "Invert Shootability Rules"; + } + } + arg4 + { + title = "Line ID / Hi-Tag"; + } + } + } + teleport + { + 215 //Teleport_Line + { + arg0 + { + title = "Line ID"; + type = 0; + } + arg1 + { + title = "Target Line ID"; + type = 0; + } + } + } + transfer + { + 16 //Transfer_WallLight + { + arg0 + { + title = "Line ID"; + type = 0; + } + } + } + translucent + { + 208 //TranslucentLine + { + arg0 + { + title = "Set Line ID"; + type = 0; + } + arg3 + { + title = "Flags"; + type = 12; + enum + { + 1 = "Sound boundary"; + 2 = "Railing"; + 4 = "Block floating monsters"; + 8 = "Clip mid texture"; + 16 = "Wrap mid texture"; + 32 = "3D mid texture"; + 64 = "Check switch height"; + } + } + } + } + // No Line_SetIdentification in UDMF! + line + { + 121 = NULL; + } +} + +enums +{ + change + { + 0 = "No texture or type change"; + 1 = "Copy texture, zero type; trigger model"; + 2 = "Copy texture, zero type; numeric model"; + 3 = "Copy texture, preserve type; trigger model"; + 4 = "Copy texture, preserve type; numeric model"; + 5 = "Copy texture and type; trigger model"; + 6 = "Copy texture and type; numeric model"; + } +} \ No newline at end of file diff --git a/Build/Configurations/Includes/Eternity_things.cfg b/Build/Configurations/Includes/Eternity_things.cfg new file mode 100644 index 000000000..a30c2b29e --- /dev/null +++ b/Build/Configurations/Includes/Eternity_things.cfg @@ -0,0 +1,124 @@ +monsters +{ + 888 + { + title = "Dog"; + sprite = "internal:dog"; + class = "MBFHelperDog"; + width = 12; + height = 28; + } +} + +eternity +{ + color = 8; // Grey + arrow = 1; + title = "Eternity Items"; + width = 0; + height = 0; + sort = 1; + fixedsize = true; + + 5003 + { + title = "Camera spot"; + class = "SMMUCameraSpot"; + } + 1200 + { + title = "Enviro sequence 0"; + } + 1300 + { + title = "Enviro sequence param"; + } + 1400 + { + title = "Sector sequence 0"; + } + 1500 + { + title = "Sector sequence param"; + } + 5004 + { + title = "ExtraData thing"; + } + 5006 + { + title = "Skybox camera"; + class = "EESkyboxCam"; + } + 5007 + { + title = "Particle Drip"; + class = "EEParticleDrip"; + } + 9001 + { + title = "Map spot"; + class = "EEMapSpot"; + } + 9013 + { + title = "Map spot gravity"; + class = "EEMapSpotGravity"; + } + 9027 + { + title = "Particle fountain red"; + } + 9028 + { + title = "Particle fountain green"; + } + 9029 + { + title = "Particle fountain blue"; + } + 9030 + { + title = "Particle fountain yellow"; + } + 9031 + { + title = "Particle fountain purple"; + } + 9032 + { + title = "Particle fountain black"; + } + 9033 + { + title = "Particle fountain white"; + } + 9300t + { + title = "Polyobject anchor"; + class = "EEPolyObjAnchor"; + } + 9301 + { + title = "Polyobject spawn spot"; + class = "EEPolyObjSpawnSpot"; + } + 9302 + { + title = "Polyobject spawn spot crush"; + class = "EEPolyObjSpawnSpotCrush"; + } + 9303 + { + title = "Polyobject spawn spot damage"; + class = "EEPolyObjSpawnSpotDamage"; + } + 14001 + { + title = "Ambience 1"; + } + 14065 + { + title = "Ambience param"; + } +} \ No newline at end of file diff --git a/Build/Scripting/ZDoom_ACS.cfg b/Build/Scripting/ZDoom_ACS.cfg index 4d89f86fd..b323c91f3 100644 --- a/Build/Scripting/ZDoom_ACS.cfg +++ b/Build/Scripting/ZDoom_ACS.cfg @@ -107,6 +107,7 @@ keywords CheckActorInventory = "int CheckActorInventory(int tid, str inventory_item)\nChecks the given actor's inventory for the item specified by inventory_item"; CheckActorProperty = "bool CheckActorProperty(int tid, int property, [int|float|str] value)"; CheckActorState = "bool CheckActorState(int tid, str statename[, bool exact = false])"; + CheckClass = "bool CheckClass(str classname)"; CheckFlag = "bool CheckFlag(int tid, str flag)\nChecks to see if the actor with the matching tid has the specified actor flag set.\nIf tid is 0, the check is performed on the activator of the script."; CheckFont = "bool CheckFont(str fontname)"; CheckInventory = "int CheckInventory(str inventory_item)\nChecks the inventory of the actor who activated the script for the item specified by inventory_item"; diff --git a/Source/Core/Controls/ArgumentBox.cs b/Source/Core/Controls/ArgumentBox.cs index e22cc9e5d..389235e7b 100644 --- a/Source/Core/Controls/ArgumentBox.cs +++ b/Source/Core/Controls/ArgumentBox.cs @@ -263,36 +263,54 @@ namespace CodeImp.DoomBuilder.Controls // This checks if the number is relative public bool CheckIsRelative() { - // Prefixed with ++ or --? - return (combobox.Text.Trim().StartsWith("++") || combobox.Text.Trim().StartsWith("--")); + // Prefixed with +++, ---, ++ or --? + string str = combobox.Text.Trim(); + return (str.StartsWith("+++") || str.StartsWith("---") || str.StartsWith("++") || str.StartsWith("--")); } // This returns the selected value - public int GetResult(int original) + public int GetResult(int original) { return GetResult(original, 0); } //mxd + public int GetResult(int original, int offset) { int result; // Strip prefixes string str = combobox.Text.Trim().ToLowerInvariant(); - str = str.TrimStart('+', '-'); + string numstr = str.TrimStart('+', '-'); //mxd // Anything in the box? - if(combobox.Text.Trim().Length > 0) + if(numstr.Length > 0) { + //mxd. Prefixed with +++? + if(str.StartsWith("+++")) + { + // Add offset to number + int num; + if(!int.TryParse(numstr, out num)) num = 0; + result = num + offset; + } + //mxd. Prefixed with ---? + else if(str.StartsWith("---")) + { + // Subtract offset from number + int num; + if(!int.TryParse(numstr, out num)) num = 0; + result = num - offset; + } // Prefixed with ++? - if(combobox.Text.Trim().StartsWith("++")) + else if(str.StartsWith("++")) { // Add number to original int num; - if(!int.TryParse(str, out num)) num = 0; + if(!int.TryParse(numstr, out num)) num = 0; result = original + num; } // Prefixed with --? - else if(combobox.Text.Trim().StartsWith("--")) + else if(str.StartsWith("--")) { // Subtract number from original int num; - if(!int.TryParse(str, out num)) num = 0; + if(!int.TryParse(numstr, out num)) num = 0; result = original - num; } else diff --git a/Source/Core/Controls/ArgumentsControl.cs b/Source/Core/Controls/ArgumentsControl.cs index a6784b98e..584bb7478 100644 --- a/Source/Core/Controls/ArgumentsControl.cs +++ b/Source/Core/Controls/ArgumentsControl.cs @@ -133,7 +133,7 @@ namespace CodeImp.DoomBuilder.Controls #region ================== Apply - public void Apply(Linedef l) + public void Apply(Linedef l, int offset) { //mxd. Script name/number handling // We can't rely on control visibility here, because all controlls will be invisible if ArgumentsControl is invisible @@ -161,7 +161,7 @@ namespace CodeImp.DoomBuilder.Controls // Apply classic arg case ArgZeroMode.DEFAULT: - l.Args[0] = arg0.GetResult(l.Args[0]); + l.Args[0] = arg0.GetResult(l.Args[0], offset); if(l.Fields.ContainsKey("arg0str")) l.Fields.Remove("arg0str"); break; @@ -169,13 +169,13 @@ namespace CodeImp.DoomBuilder.Controls } // Apply the rest of args - l.Args[1] = arg1.GetResult(l.Args[1]); - l.Args[2] = arg2.GetResult(l.Args[2]); - l.Args[3] = arg3.GetResult(l.Args[3]); - l.Args[4] = arg4.GetResult(l.Args[4]); + l.Args[1] = arg1.GetResult(l.Args[1], offset); + l.Args[2] = arg2.GetResult(l.Args[2], offset); + l.Args[3] = arg3.GetResult(l.Args[3], offset); + l.Args[4] = arg4.GetResult(l.Args[4], offset); } - public void Apply(Thing t) + public void Apply(Thing t, int offset) { //mxd. Script name/number handling // We can't rely on control visibility here, because all controlls will be invisible if ArgumentsControl is invisible @@ -203,7 +203,7 @@ namespace CodeImp.DoomBuilder.Controls // Apply classic arg case ArgZeroMode.DEFAULT: - t.Args[0] = arg0.GetResult(t.Args[0]); + t.Args[0] = arg0.GetResult(t.Args[0], offset); if(t.Fields.ContainsKey("arg0str")) t.Fields.Remove("arg0str"); break; @@ -211,10 +211,10 @@ namespace CodeImp.DoomBuilder.Controls } // Apply the rest of args - t.Args[1] = arg1.GetResult(t.Args[1]); - t.Args[2] = arg2.GetResult(t.Args[2]); - t.Args[3] = arg3.GetResult(t.Args[3]); - t.Args[4] = arg4.GetResult(t.Args[4]); + t.Args[1] = arg1.GetResult(t.Args[1], offset); + t.Args[2] = arg2.GetResult(t.Args[2], offset); + t.Args[3] = arg3.GetResult(t.Args[3], offset); + t.Args[4] = arg4.GetResult(t.Args[4], offset); } #endregion diff --git a/Source/Core/Data/FlatImage.cs b/Source/Core/Data/FlatImage.cs index d03f9e053..f51e5135d 100644 --- a/Source/Core/Data/FlatImage.cs +++ b/Source/Core/Data/FlatImage.cs @@ -58,9 +58,14 @@ namespace CodeImp.DoomBuilder.Data if(lumpdata != null) { // Copy lump data to memory - lumpdata.Seek(0, SeekOrigin.Begin); byte[] membytes = new byte[(int)lumpdata.Length]; - lumpdata.Read(membytes, 0, (int)lumpdata.Length); + + lock(lumpdata) //mxd + { + lumpdata.Seek(0, SeekOrigin.Begin); + lumpdata.Read(membytes, 0, (int)lumpdata.Length); + } + MemoryStream mem = new MemoryStream(membytes); mem.Seek(0, SeekOrigin.Begin); diff --git a/Source/Core/Data/HiResImage.cs b/Source/Core/Data/HiResImage.cs index 6a1932fa2..84a037afc 100644 --- a/Source/Core/Data/HiResImage.cs +++ b/Source/Core/Data/HiResImage.cs @@ -120,9 +120,14 @@ namespace CodeImp.DoomBuilder.Data if(data != null) { // Copy patch data to memory - data.Seek(0, SeekOrigin.Begin); byte[] membytes = new byte[(int)data.Length]; - data.Read(membytes, 0, (int)data.Length); + + lock(data) //mxd + { + data.Seek(0, SeekOrigin.Begin); + data.Read(membytes, 0, (int)data.Length); + } + MemoryStream mem = new MemoryStream(membytes); mem.Seek(0, SeekOrigin.Begin); diff --git a/Source/Core/Data/SimpleTextureImage.cs b/Source/Core/Data/SimpleTextureImage.cs index c5d129f58..750894d37 100644 --- a/Source/Core/Data/SimpleTextureImage.cs +++ b/Source/Core/Data/SimpleTextureImage.cs @@ -71,9 +71,14 @@ namespace CodeImp.DoomBuilder.Data if(patchdata != null) { // Copy patch data to memory - patchdata.Seek(0, SeekOrigin.Begin); byte[] membytes = new byte[(int)patchdata.Length]; - patchdata.Read(membytes, 0, (int)patchdata.Length); + + lock(patchdata) //mxd + { + patchdata.Seek(0, SeekOrigin.Begin); + patchdata.Read(membytes, 0, (int)patchdata.Length); + } + MemoryStream mem = new MemoryStream(membytes); mem.Seek(0, SeekOrigin.Begin); diff --git a/Source/Core/Data/SpriteImage.cs b/Source/Core/Data/SpriteImage.cs index 97e7be274..0f9a0bfb8 100644 --- a/Source/Core/Data/SpriteImage.cs +++ b/Source/Core/Data/SpriteImage.cs @@ -89,9 +89,14 @@ namespace CodeImp.DoomBuilder.Data if(lumpdata != null) { // Copy lump data to memory - lumpdata.Seek(0, SeekOrigin.Begin); byte[] membytes = new byte[(int)lumpdata.Length]; - lumpdata.Read(membytes, 0, (int)lumpdata.Length); + + lock(lumpdata) //mxd + { + lumpdata.Seek(0, SeekOrigin.Begin); + lumpdata.Read(membytes, 0, (int)lumpdata.Length); + } + MemoryStream mem = new MemoryStream(membytes); mem.Seek(0, SeekOrigin.Begin); diff --git a/Source/Core/Data/TEXTURESImage.cs b/Source/Core/Data/TEXTURESImage.cs index 79d3244f4..cd9fbe158 100644 --- a/Source/Core/Data/TEXTURESImage.cs +++ b/Source/Core/Data/TEXTURESImage.cs @@ -162,9 +162,14 @@ namespace CodeImp.DoomBuilder.Data if(patchdata != null) { // Copy patch data to memory - patchdata.Seek(0, SeekOrigin.Begin); byte[] membytes = new byte[(int)patchdata.Length]; - patchdata.Read(membytes, 0, (int)patchdata.Length); + + lock(patchdata) //mxd + { + patchdata.Seek(0, SeekOrigin.Begin); + patchdata.Read(membytes, 0, (int)patchdata.Length); + } + MemoryStream mem = new MemoryStream(membytes); mem.Seek(0, SeekOrigin.Begin); diff --git a/Source/Core/Data/TextureImage.cs b/Source/Core/Data/TextureImage.cs index e5c3a43f3..e675d4a5b 100644 --- a/Source/Core/Data/TextureImage.cs +++ b/Source/Core/Data/TextureImage.cs @@ -108,9 +108,14 @@ namespace CodeImp.DoomBuilder.Data if(patchdata != null) { // Copy patch data to memory - patchdata.Seek(0, SeekOrigin.Begin); byte[] membytes = new byte[(int)patchdata.Length]; - patchdata.Read(membytes, 0, (int)patchdata.Length); + + lock(patchdata) //mxd + { + patchdata.Seek(0, SeekOrigin.Begin); + patchdata.Read(membytes, 0, (int)patchdata.Length); + } + MemoryStream mem = new MemoryStream(membytes); mem.Seek(0, SeekOrigin.Begin); diff --git a/Source/Core/Editing/EditMode.cs b/Source/Core/Editing/EditMode.cs index fb5aeede6..da45ce434 100644 --- a/Source/Core/Editing/EditMode.cs +++ b/Source/Core/Editing/EditMode.cs @@ -246,6 +246,7 @@ namespace CodeImp.DoomBuilder.Editing // Processing events public virtual void OnProcess(long deltatime) { } + public virtual void OnClockReset() { } //mxd // Generic events public virtual void OnReloadResources() { } diff --git a/Source/Core/General/Clock.cs b/Source/Core/General/Clock.cs index 12866b6ad..6b41f249c 100644 --- a/Source/Core/General/Clock.cs +++ b/Source/Core/General/Clock.cs @@ -22,5 +22,12 @@ namespace CodeImp.DoomBuilder { // This queries the system for the current time public static long CurrentTime { get { return Configuration.Timer.ElapsedMilliseconds; } } + + //mxd. Timer needs to be reset from time to time (like, every 2 days of continuously running the editor) to prevent float precision degradation. + internal static void Reset() + { + Configuration.Timer.Reset(); + Configuration.Timer.Start(); + } } } diff --git a/Source/Core/General/General.cs b/Source/Core/General/General.cs index 200a251b7..e3004cee6 100644 --- a/Source/Core/General/General.cs +++ b/Source/Core/General/General.cs @@ -1062,6 +1062,9 @@ namespace CodeImp.DoomBuilder // Ask the user to save changes (if any) if(AskSaveMap()) { + //mxd. Reset the clock... + MainWindow.ResetClock(); + // Open map options dialog MapOptionsForm optionswindow = new MapOptionsForm(newoptions, true); if(optionswindow.ShowDialog(mainwindow) == DialogResult.OK) @@ -1457,6 +1460,9 @@ namespace CodeImp.DoomBuilder Cursor.Current = Cursors.Default; } + //mxd. Also reset the clock... + MainWindow.ResetClock(); + return result; } @@ -1541,6 +1547,10 @@ namespace CodeImp.DoomBuilder } savefile.Dispose(); + + //mxd. Also reset the clock... + MainWindow.ResetClock(); + return result; } @@ -1606,6 +1616,10 @@ namespace CodeImp.DoomBuilder } savefile.Dispose(); + + //mxd. Also reset the clock... + MainWindow.ResetClock(); + return result; } diff --git a/Source/Core/Rendering/Renderer3D.cs b/Source/Core/Rendering/Renderer3D.cs index ce5e31d1a..6d63ae0ce 100644 --- a/Source/Core/Rendering/Renderer3D.cs +++ b/Source/Core/Rendering/Renderer3D.cs @@ -335,8 +335,7 @@ namespace CodeImp.DoomBuilder.Rendering // Highlight if(General.Settings.AnimateVisualSelection) { - long time = Clock.CurrentTime; - highlightglow = (float)Math.Sin(time / 100.0f) * 0.1f + 0.4f; + highlightglow = (float)Math.Sin(Clock.CurrentTime / 100.0f) * 0.1f + 0.4f; highlightglowinv = -highlightglow + 0.8f; } else diff --git a/Source/Core/VisualModes/VisualThing.cs b/Source/Core/VisualModes/VisualThing.cs index a7f1c0458..92fd6eb09 100644 --- a/Source/Core/VisualModes/VisualThing.cs +++ b/Source/Core/VisualModes/VisualThing.cs @@ -759,7 +759,6 @@ namespace CodeImp.DoomBuilder.VisualModes return; } - long time = Clock.CurrentTime; float rMin = Math.Min(lightPrimaryRadius, lightSecondaryRadius); float rMax = Math.Max(lightPrimaryRadius, lightSecondaryRadius); float diff = rMax - rMin; @@ -767,12 +766,12 @@ namespace CodeImp.DoomBuilder.VisualModes switch(lightType) { case DynamicLightType.PULSE: - lightDelta = ((float)Math.Sin(time / (interval * 4.0f)) + 1.0f) / 2.0f; //just playing by the eye here... in [0.0 ... 1.0] interval + lightDelta = ((float)Math.Sin(Clock.CurrentTime / (interval * 4.0f)) + 1.0f) / 2.0f; //just playing by the eye here... in [0.0 ... 1.0] interval lightRadius = rMin + diff * lightDelta; break; - case DynamicLightType.FLICKER: - float fdelta = (float)Math.Sin(time / 0.1f); //just playing by the eye here... + case DynamicLightType.FLICKER: + float fdelta = (float)Math.Sin(Clock.CurrentTime / 0.1f); //just playing by the eye here... if(Math.Sign(fdelta) != Math.Sign(lightDelta)) { lightDelta = fdelta; @@ -781,7 +780,7 @@ namespace CodeImp.DoomBuilder.VisualModes break; case DynamicLightType.RANDOM: - float rdelta = (float)Math.Sin(time / (interval * 9.0f)); //just playing by the eye here... + float rdelta = (float)Math.Sin(Clock.CurrentTime / (interval * 9.0f)); //just playing by the eye here... if(Math.Sign(rdelta) != Math.Sign(lightDelta)) { lightRadius = rMin + (General.Random(0, (int) (diff * 10))) / 10.0f; diff --git a/Source/Core/Windows/LinedefEditForm.cs b/Source/Core/Windows/LinedefEditForm.cs index 9247d9312..edf55d1cd 100644 --- a/Source/Core/Windows/LinedefEditForm.cs +++ b/Source/Core/Windows/LinedefEditForm.cs @@ -394,7 +394,7 @@ namespace CodeImp.DoomBuilder.Windows MakeUndo(); //mxd // Go for all the lines - int tagoffset = 0; //mxd + int offset = 0; //mxd foreach(Linedef l in lines) { // Apply chosen activation flag @@ -402,11 +402,11 @@ namespace CodeImp.DoomBuilder.Windows l.Activate = (activation.SelectedItem as LinedefActivateInfo).Index; // Action/tags - l.Tag = General.Clamp(tagSelector.GetSmartTag(l.Tag, tagoffset++), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd + l.Tag = General.Clamp(tagSelector.GetSmartTag(l.Tag, offset), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd if(!action.Empty) l.Action = action.Value; //mxd. Apply args - argscontrol.Apply(l); + argscontrol.Apply(l, offset); // Remove front side? if((l.Front != null) && (frontside.CheckState == CheckState.Unchecked)) @@ -457,6 +457,9 @@ namespace CodeImp.DoomBuilder.Windows } } } + + //mxd. Increase offset... + offset++; } // Update the used textures diff --git a/Source/Core/Windows/LinedefEditFormUDMF.cs b/Source/Core/Windows/LinedefEditFormUDMF.cs index 7b6f1b7a0..73f9ec2ee 100644 --- a/Source/Core/Windows/LinedefEditFormUDMF.cs +++ b/Source/Core/Windows/LinedefEditFormUDMF.cs @@ -668,6 +668,7 @@ namespace CodeImp.DoomBuilder.Windows } // Go for all the lines + int offset = 0; //mxd foreach(Linedef l in lines) { // UDMF activations @@ -685,7 +686,7 @@ namespace CodeImp.DoomBuilder.Windows if(!action.Empty) l.Action = action.Value; //mxd. Apply args - argscontrol.Apply(l); + argscontrol.Apply(l, offset++); // Remove front side? if((l.Front != null) && (frontside.CheckState == CheckState.Unchecked)) diff --git a/Source/Core/Windows/MainForm.cs b/Source/Core/Windows/MainForm.cs index 78da88641..90c7c3cc4 100644 --- a/Source/Core/Windows/MainForm.cs +++ b/Source/Core/Windows/MainForm.cs @@ -4164,6 +4164,17 @@ namespace CodeImp.DoomBuilder.Windows processingcount = 0; processor.Enabled = false; } + + //mxd + internal void ResetClock() + { + Clock.Reset(); + lastupdatetime = 0; + + // Let the mode know... + if(General.Editing.Mode != null) + General.Editing.Mode.OnClockReset(); + } // Processor event private void processor_Tick(object sender, EventArgs e) diff --git a/Source/Core/Windows/ThingEditForm.cs b/Source/Core/Windows/ThingEditForm.cs index 5a18300cf..4e54eb1e0 100644 --- a/Source/Core/Windows/ThingEditForm.cs +++ b/Source/Core/Windows/ThingEditForm.cs @@ -416,7 +416,7 @@ namespace CodeImp.DoomBuilder.Windows } // Go for all the things - int tagoffset = 0; //mxd + int offset = 0; //mxd foreach(Thing t in things) { // Coordination @@ -443,14 +443,17 @@ namespace CodeImp.DoomBuilder.Windows } // Action/tags - t.Tag = General.Clamp(tagSelector.GetSmartTag(t.Tag, tagoffset++), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd + t.Tag = General.Clamp(tagSelector.GetSmartTag(t.Tag, offset), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd if(!action.Empty) t.Action = action.Value; //mxd. Apply args - argscontrol.Apply(t); + argscontrol.Apply(t, offset); // Update settings t.UpdateConfiguration(); + + //mxd. Increase offset... + offset++; } // Set as defaults diff --git a/Source/Core/Windows/ThingEditFormUDMF.cs b/Source/Core/Windows/ThingEditFormUDMF.cs index df08d4509..84b929312 100644 --- a/Source/Core/Windows/ThingEditFormUDMF.cs +++ b/Source/Core/Windows/ThingEditFormUDMF.cs @@ -512,7 +512,7 @@ namespace CodeImp.DoomBuilder.Windows } // Go for all the things - int tagoffset = 0; //mxd + int offset = 0; //mxd foreach(Thing t in things) { // Coordination @@ -532,11 +532,11 @@ namespace CodeImp.DoomBuilder.Windows if(t.Position.x != px || t.Position.y != py) t.Move(new Vector2D(px, py)); // Action/tags - t.Tag = General.Clamp(tagSelector.GetSmartTag(t.Tag, tagoffset++), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd + t.Tag = General.Clamp(tagSelector.GetSmartTag(t.Tag, offset), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd if(!action.Empty) t.Action = action.Value; //mxd. Apply args - argscontrol.Apply(t); + argscontrol.Apply(t, offset); //mxd. Custom fields fieldslist.Apply(t.Fields); @@ -563,6 +563,9 @@ namespace CodeImp.DoomBuilder.Windows // Update settings t.UpdateConfiguration(); + + //mxd. Increase offset... + offset++; } // Set as defaults diff --git a/Source/Plugins/BuilderModes/ClassicModes/MakeSectorMode.cs b/Source/Plugins/BuilderModes/ClassicModes/MakeSectorMode.cs index fe83eea24..7509476ec 100644 --- a/Source/Plugins/BuilderModes/ClassicModes/MakeSectorMode.cs +++ b/Source/Plugins/BuilderModes/ClassicModes/MakeSectorMode.cs @@ -506,8 +506,7 @@ namespace CodeImp.DoomBuilder.BuilderModes if(flashpolygon != null) { // Determine the intensity of the flash by time elapsed - long curtime = Clock.CurrentTime; - flashintensity = 1f - ((curtime - flashstarttime) / FLASH_DURATION); + flashintensity = 1f - ((Clock.CurrentTime - flashstarttime) / FLASH_DURATION); if(flashintensity > 0.0f) { // Update vertices in polygon diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs index 88ae06980..820178e57 100644 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs @@ -1209,7 +1209,14 @@ namespace CodeImp.DoomBuilder.BuilderModes MouseEventArgs args = new MouseEventArgs(General.Interface.MouseButtons, 0, 0, 0, 0); OnMouseMove(args); } - + + //mxd + public override void OnClockReset() + { + base.OnClockReset(); + lastpicktime = 0; + } + // This draws a frame public override void OnRedrawDisplay() { diff --git a/Source/Plugins/NodesViewer/NodesForm.cs b/Source/Plugins/NodesViewer/NodesForm.cs index c42d8f42f..08c00abf6 100644 --- a/Source/Plugins/NodesViewer/NodesForm.cs +++ b/Source/Plugins/NodesViewer/NodesForm.cs @@ -168,6 +168,7 @@ namespace CodeImp.DoomBuilder.Plugins.NodesViewer NodesViewerMode newmode = new NodesViewerMode(); General.Editing.ChangeMode(newmode); newmode.Form.showsegsvertices.Checked = this.showsegsvertices.Checked; + newmode.Form.Location = this.Location; //mxd } #endregion diff --git a/Source/Plugins/VisplaneExplorer/VisplaneExplorerMode.cs b/Source/Plugins/VisplaneExplorer/VisplaneExplorerMode.cs index 84be986e1..23d11e69e 100644 --- a/Source/Plugins/VisplaneExplorer/VisplaneExplorerMode.cs +++ b/Source/Plugins/VisplaneExplorer/VisplaneExplorerMode.cs @@ -59,7 +59,7 @@ namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer private Dictionary<Point, Tile> tiles = new Dictionary<Point, Tile>(); // Time when to do another update - private DateTime nextupdate; + private long nextupdate; // Are we processing? private bool processingenabled; @@ -323,7 +323,7 @@ namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer renderer.SetPresentation(p); // Setup processing - nextupdate = DateTime.Now + new TimeSpan(0, 0, 0, 0, 100); + nextupdate = Clock.CurrentTime + 100; General.Interface.EnableProcessing(); processingenabled = true; @@ -358,7 +358,7 @@ namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer RedrawAllTiles(); // Update the screen sooner - nextupdate = DateTime.Now + new TimeSpan(0, 0, 0, 0, 100); + nextupdate = Clock.CurrentTime + 100; } // Draw the display @@ -383,7 +383,7 @@ namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer public override void OnProcess(long deltatime) { base.OnProcess(deltatime); - if(DateTime.Now >= nextupdate) + if(Clock.CurrentTime >= nextupdate) { // Get the processed points from the VPO manager List<PointData> points = new List<PointData>(); @@ -405,7 +405,7 @@ namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer RedrawAllTiles(); General.Interface.RedrawDisplay(); - nextupdate = DateTime.Now + new TimeSpan(0, 0, 0, 0, 500); + nextupdate = Clock.CurrentTime + 500; } else { -- GitLab