diff --git a/Build/Compilers/ZDoom/zspecial.acs b/Build/Compilers/ZDoom/zspecial.acs
index 10f7c0bc..e78162ca 100644
--- a/Build/Compilers/ZDoom/zspecial.acs
+++ b/Build/Compilers/ZDoom/zspecial.acs
@@ -329,6 +329,8 @@ special
-83:PickActor(5,8),
-84:IsPointerEqual(2,4),
-85:CanRaiseActor(1),
+ -86:SetActorTeleFog(3),
+ -87:SwapActorTeleFog(1),
// Zandronum's
-100:ResetMap(0),
diff --git a/Build/Configurations/Includes/Boom_common.cfg b/Build/Configurations/Includes/Boom_common.cfg
index 9a6dc413..7a0a593b 100644
--- a/Build/Configurations/Includes/Boom_common.cfg
+++ b/Build/Configurations/Includes/Boom_common.cfg
@@ -3,10 +3,11 @@ mapformat_doom
// The format interface handles the map data format
formatinterface = "DoomMapSetIO";
- maplumpnames
- {
- include("Doom_misc.cfg", "doommaplumpnames");
- }
+ 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;
diff --git a/Build/Configurations/Includes/Boom_misc.cfg b/Build/Configurations/Includes/Boom_misc.cfg
index 666f0863..d154bd74 100644
--- a/Build/Configurations/Includes/Boom_misc.cfg
+++ b/Build/Configurations/Includes/Boom_misc.cfg
@@ -35,25 +35,29 @@ thingflagstranslation
// How thing flags should be compared (for the stuck thing error check)
thingflagscompare
{
- skills {
+ skills
+ {
1;
2;
4;
}
- gamemodes {
- 16 {
- //invert = true;
+ gamemodes
+ {
+ 16
+ {
ignoredgroup = "skills";
ingnorethisgroupwhenunset = true;
}
- 32 {
+ 32
+ {
invert = true;
requiredflag = "16";
}
- 64 {
+ 64
+ {
invert = true;
requiredflag = "16";
requiredgroup = "skills";
@@ -101,85 +105,8 @@ allowempty = The nodebuilder is allowed to leave this lump empty.
script = This lump is a text-based script. Specify the filename of the script configuration to use.
*/
-doommaplumpnames
+boommaplumpnames
{
- ~MAP
- {
- required = true;
- blindcopy = true;
- nodebuild = false;
- }
-
- THINGS
- {
- required = true;
- nodebuild = true;
- allowempty = true;
- }
-
- LINEDEFS
- {
- required = true;
- nodebuild = true;
- allowempty = false;
- }
-
- SIDEDEFS
- {
- required = true;
- nodebuild = true;
- allowempty = false;
- }
-
- VERTEXES
- {
- required = true;
- nodebuild = true;
- allowempty = false;
- }
-
- SEGS
- {
- required = false;
- nodebuild = true;
- allowempty = false;
- }
-
- SSECTORS
- {
- required = false;
- nodebuild = true;
- allowempty = false;
- }
-
- NODES
- {
- required = false;
- nodebuild = true;
- allowempty = false;
- }
-
- SECTORS
- {
- required = true;
- nodebuild = true;
- allowempty = false;
- }
-
- REJECT
- {
- required = false;
- nodebuild = true;
- allowempty = false;
- }
-
- BLOCKMAP
- {
- required = false;
- nodebuild = true;
- allowempty = false;
- }
-
DEHACKED
{
required = false;
diff --git a/Build/Configurations/Includes/UDMF_misc.cfg b/Build/Configurations/Includes/UDMF_misc.cfg
index 9bf0768d..16d746dd 100644
--- a/Build/Configurations/Includes/UDMF_misc.cfg
+++ b/Build/Configurations/Includes/UDMF_misc.cfg
@@ -9,6 +9,9 @@ thingflags
skill3 = "Skill 3";
skill4 = "Skill 4";
skill5 = "Skill 5";
+ skill6 = "Skill 6";
+ skill7 = "Skill 7";
+ skill8 = "Skill 8";
ambush = "Deaf";
single = "Singleplayer";
dm = "Deathmatch";
@@ -30,6 +33,9 @@ defaultthingflags
skill3;
skill4;
skill5;
+ skill6;
+ skill7;
+ skill8;
single;
coop;
dm;
@@ -39,27 +45,36 @@ defaultthingflags
// How thing flags should be compared (for the stuck thing error check)
thingflagscompare
{
- skills {
+ skills
+ {
skill1;
skill2;
skill3;
skill4;
skill5;
+ skill6;
+ skill7;
+ skill8;
}
- gamemodes {
- single {
+ gamemodes
+ {
+ single
+ {
requiredgroup = "skills";
}
- coop {
+ coop
+ {
requiredgroup = "skills";
}
- dm {
+ dm
+ {
ignoredgroup = "skills";
}
}
- classes {
+ classes
+ {
class1;
class2;
class3;
diff --git a/Build/Configurations/Includes/ZDoom_common.cfg b/Build/Configurations/Includes/ZDoom_common.cfg
index 37f60536..d1d36311 100644
--- a/Build/Configurations/Includes/ZDoom_common.cfg
+++ b/Build/Configurations/Includes/ZDoom_common.cfg
@@ -90,6 +90,7 @@ mapformat_doom
{
include("Doom_misc.cfg", "doommaplumpnames");
include("ZDoom_misc.cfg", "doommaplumpnames");
+ include("ZDoom_misc.cfg", "glmaplumpnames");
}
// When this is set to true, sectors with the same tag will light up when a line is highlighted
@@ -203,6 +204,7 @@ mapformat_hexen
{
include("Doom_misc.cfg", "hexenmaplumpnames");
include("ZDoom_misc.cfg", "hexenmaplumpnames");
+ include("ZDoom_misc.cfg", "glmaplumpnames");
}
// When this is set to true, sectors with the same tag will light up when a line is highlighted
diff --git a/Build/Configurations/Includes/ZDoom_misc.cfg b/Build/Configurations/Includes/ZDoom_misc.cfg
index d213e3b2..8dbf0197 100644
--- a/Build/Configurations/Includes/ZDoom_misc.cfg
+++ b/Build/Configurations/Includes/ZDoom_misc.cfg
@@ -110,6 +110,9 @@ defaultthingflags_udmf
skill3;
skill4;
skill5;
+ skill6;
+ skill7;
+ skill8;
single;
coop;
dm;
@@ -123,10 +126,8 @@ defaultthingflags_udmf
// How thing flags should be compared (for the stuck thing error check)
thingflagscompare_udmf
{
- skills {
- skill6;
- skill7;
- skill8;
+ skills
+ {
skill9;
skill10;
skill11;
@@ -137,7 +138,8 @@ thingflagscompare_udmf
skill16;
}
- classes {
+ classes
+ {
class4;
class5;
class6;
@@ -403,6 +405,52 @@ scriptbuild = This lump is a text-based script, which should be compiled using c
script = This lump is a text-based script. Specify the filename of the script configuration to use.
*/
+// GL nodebuilders generate this stuff
+glmaplumpnames
+{
+ GL_~MAP
+ {
+ required = false;
+ nodebuild = true;
+ allowempty = true;
+ }
+
+ GL_VERT
+ {
+ required = false;
+ nodebuild = true;
+ allowempty = false;
+ }
+
+ GL_SEGS
+ {
+ required = false;
+ nodebuild = true;
+ allowempty = false;
+ }
+
+ GL_SSECT
+ {
+ required = false;
+ nodebuild = true;
+ allowempty = false;
+ }
+
+ GL_NODES
+ {
+ required = false;
+ nodebuild = true;
+ allowempty = false;
+ }
+
+ GL_PVS
+ {
+ required = false;
+ nodebuild = true;
+ allowempty = true;
+ }
+}
+
doommaplumpnames
{
REJECT
diff --git a/Build/Scripting/ZDoom_ACS.cfg b/Build/Scripting/ZDoom_ACS.cfg
index aa3e150b..24566beb 100644
--- a/Build/Scripting/ZDoom_ACS.cfg
+++ b/Build/Scripting/ZDoom_ACS.cfg
@@ -397,6 +397,7 @@ keywords
SetPointer = "bool SetPointer(int assign_slot, int tid[, int pointer_selector[, int flags]])\nSet the value of one of the caller's stored pointers.";
SetResultValue = "void SetResultValue(int value)";
SetSkyScrollSpeed = "void SetSkyScrollSpeed(int sky, fixed skyspeed)\nChanges the scrolling speed of a sky.\nThis is useful in conjunction with ChangeSky.\nsky: either 1 or 2.\nskyspeed: the desired scrolling speed.";
+ SetTeleFog = "void SetTeleFog(int tid, str telefogsrcclass, str telefogdestclass";
SetThingSpecial = "void SetThingSpecial(int tid, int special [, int arg0 [, int arg1 [, int arg2 [, int arg3 [, int arg4]]]]])\nSets the special for any things with the same TID.\nThis is similar to Thing_SetSpecial, except it can only be used from ACS,\nand it can set all of a thing's special arguments.\nIf tid is 0, then the activator is used.";
SetUserArray = "void SetUserArray(int tid, str name, int pos, int value)\nSets one of the affected actor's user array-bound variables.";
SetUserCVar = "bool SetUserCVar(int playernumber, str cvar, int value)\nSets the console variable of a particular player.\nOnly mod-defined console variables through CVARINFO can be changed by using this function.\nReturns FALSE if cvar is invalid, it is not writable, or the player doesn't exist.";
@@ -437,6 +438,7 @@ keywords
StrParam = "int StrParam(type:expression)\nStrParam will create a new string formatted based upon the same method for Print or Log.\nThe return value is the string table index of the new string.";
StrRight = "str StrRight(str string, int length)\nCreates a new string containing the length last characters of string.\nIf string does not exist, an empty string is returned.\nIf string is shorter than length characters, the entire string is returned.";
Suspend = "Suspend";
+ SwapTeleFog = "int SwapTeleFog(int tid)";
Switch = "Switch(expression)";
TagWait = "void TagWait(int tag)";
TakeActorInventory = "void TakeActorInventory(int tid, str inventory_item, int amount)\nThis function will take the amount of items from the specified actor.\nTakeActorInventory can remove items that are flagged as undroppable.";
diff --git a/Build/Scripting/ZDoom_DECORATE.cfg b/Build/Scripting/ZDoom_DECORATE.cfg
index 9f320c3c..15b2d011 100644
--- a/Build/Scripting/ZDoom_DECORATE.cfg
+++ b/Build/Scripting/ZDoom_DECORATE.cfg
@@ -55,6 +55,8 @@ keywords
A_RemoveTracer = "A_RemoveTracer[(int flags)]\nflags: RMVF flags.";
A_Remove = "A_Remove(int pointer, int flags)\nflags: RMVF flags.";
A_SentinelBob = "A_SentinelBob";
+ A_SetTeleFog = "A_SetTeleFog(string telefogsourceclass, string telefogdestclass)";
+ A_SwapTeleFog = "A_SwapTeleFog";
A_TurretLook = "A_TurretLook";
A_Teleport = "A_Teleport[(string teleportstate = \"Teleport\"[, string targettype = \"BossSpot\"[, string fogtype = \"TeleportFog\"[, int flags = 0[, float mindist = 0[, float maxdist = 0]]]]])]";
A_VileChase = "A_VileChase";
diff --git a/Help/gzdb/features/classic_modes/import_terrain_settings.jpg b/Help/gzdb/features/classic_modes/import_terrain_settings.jpg
new file mode 100644
index 00000000..02f82bc5
Binary files /dev/null and b/Help/gzdb/features/classic_modes/import_terrain_settings.jpg differ
diff --git a/Help/gzdb/features/classic_modes/mode_importterrain.html b/Help/gzdb/features/classic_modes/mode_importterrain.html
index 656ab3cf..00d23792 100644
--- a/Help/gzdb/features/classic_modes/mode_importterrain.html
+++ b/Help/gzdb/features/classic_modes/mode_importterrain.html
@@ -23,12 +23,16 @@
Action category: Tools.
Default key: none.
Usage:
- Create a terrain model in your favorite 3d modeling app (Blender, Earth Sculptor or any other, which can save a model to Wavefront .obj format)
- Use File -> Import -> Wavefront .obj as Terrain action to import it as sectors. Each polygon in your model will be transformed into sector.
Action names: Fit Texture, Fit Texture's Width, Fit Texture's Height
+
Action name: Fit Textures.
Action category: Visual Modes.
- Default keys: Ctrl-Alt-A, Alt-A, Alt-Shift-A.
Example:
- Initial scaling:
-
After "Fit Texture's Width" action:
+ Default key: Ctrl-Alt-A.
This action allows you to align textures to selected surfaces in Visual mode. "Fit across connected surfaces" setting controls whether adjacent surfaces sharing the same texture are threated as a continuous surface.
+Examples:
+ Initial setup:
+
Examples of various settings in action:
After "Fit Texture's Height" action:
-
After "Fit Texture" action:
-