Merge branch 'gzdb-merge2016-bugfixes' into 'master'

GZDB 2016 merge

See merge request STJr/ZoneBuilder!12
This commit is contained in:
sphere 2023-01-09 15:42:36 +00:00
commit fe31872b65
479 changed files with 26222 additions and 11183 deletions

3
.gitignore vendored
View file

@ -462,3 +462,6 @@
/Build/D3DImm.dll
/Build/D3D9.dll
/Build/D3D8.dll
/UpgradeLog.htm
/UpgradeLog2.htm
/UpgradeLog3.htm

Binary file not shown.

View file

@ -1086,3 +1086,17 @@
#define WARPF_USEPTR 0x2000
#define WARPF_COPYVELOCITY 0x4000
#define WARPF_COPYPITCH 0x8000
#define CPXF_ANCESTOR (1 << 0)
#define CPXF_LESSOREQUAL (1 << 1)
#define CPXF_NOZ (1 << 2)
#define CPXF_COUNTDEAD (1 << 3)
#define CPXF_DEADONLY (1 << 4)
#define CPXF_EXACT (1 << 5)
#define CPXF_SETTARGET (1 << 6)
#define CPXF_SETMASTER (1 << 7)
#define CPXF_SETTRACER (1 << 8)
#define CPXF_FARTHEST (1 << 9)
#define CPXF_CLOSEST (1 << 10)
#define CPXF_SETONPTR (1 << 11)
#define CPXF_CHECKSIGHT (1 << 12)

View file

@ -358,12 +358,14 @@ special
-88:SetActorRoll(2),
-89:ChangeActorRoll(2,3),
-90:GetActorRoll(1),
-91:QuakeEx(8,12),
-91:QuakeEx(8,14),
-92:Warp(6,11),
-93:GetMaxInventory(2),
-94:SetSectorDamage(2,5),
-95:SetSectorTerrain(3),
-96:SpawnParticle(1,15),
-96:SpawnParticle(1,16),
-97:SetMusicVolume(1),
-98:CheckProximity(3, 6),
// Zandronum's
-100:ResetMap(0),
@ -393,6 +395,10 @@ special
-124:EndDBTransaction(0),
-125:GetDBEntries(1),
// -1xx are reserved for Zandronum
-200:CheckClass(1),
-201:DamageActor(6), // [arookas]
// ZDaemon's
-19620:GetTeamScore(1),
-19621:SetTeamScore(2),

View file

@ -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");
}

View file

@ -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");
}

View file

@ -32,6 +32,9 @@ include("Includes\\Game_Hexen.cfg");
//mxd. No DECORATE support in vanilla
decorategames = "";
//mxd. Don't do vanilla-style thing rotation angle clamping
doomthingrotationangles = false;
// Default thing filters
// (these are not required, just useful for new users)
thingsfilters

View file

@ -2,18 +2,6 @@
// Generalized sector types
gen_sectortypes
{
lighting
{
0 = "Normal";
1 = "Light Blinks (randomly)";
2 = "Light Blinks (0.5 sec)";
3 = "Light Blinks (1 sec)";
8 = "Light Glows (1+ sec)";
12 = "Light Blinks (0.5 sec sync)";
13 = "Light Blinks (1 sec sync)";
17 = "Light Flickers (randomly)";
}
damage
{
0 = "None";

View file

@ -107,7 +107,8 @@ floor
213
{
title = "Floor Change Brightness to this Brightness";
title = "Change Floor Brightness to this Brightness";
id = "Boom_Transfer_FloorLight";
prefix = "";
}
@ -641,7 +642,8 @@ ceiling
261
{
title = "Ceiling Brightness to this Brightness";
title = "Change Ceiling Brightness to this Brightness";
id = "Boom_Transfer_CeilingLight";
prefix = "";
}
}

View file

@ -17,6 +17,9 @@ common
defaultflatscale = 1.0f;
scaledtextureoffsets = true;
//mxd. Do vanilla-style thing rotation angle clamping
doomthingrotationangles = true;
// Texture sources
textures
{

View file

@ -1,17 +1,17 @@
0 = "None";
1 = "Light Blinks (randomly)";
2 = "Light Blinks (2 Hz)";
3 = "Light Blinks (1 Hz)";
4 = "Damage -10 or 20% health and Light Blinks (2 Hz)";
2 = "Light Blinks (0.5 sec.)";
3 = "Light Blinks (1 sec.)";
4 = "Damage -10 or 20% health and Light Blinks (0.5 sec.)";
5 = "Damage -5 or 10% health";
7 = "Damage -2 or 5% health";
8 = "Light Glows (1+ sec)";
8 = "Light Glows (1+ sec.)";
9 = "Secret";
10 = "Door Close Stay (after 30 sec)";
10 = "Door Close Stay (after 30 sec.)";
11 = "Damage -10 or 20% health and End level";
12 = "Light Blinks (1 Hz synchronized)";
13 = "Light Blinks (2 Hz synchronized)";
14 = "Door Open Close (opens after 5 min)";
12 = "Light Blinks (0.5 sec. synchronized)";
13 = "Light Blinks (1 sec. synchronized)";
14 = "Door Open Close (opens after 5 min.)";
16 = "Damage -10 or 20% health";
17 = "Light Flickers (randomly)";

View file

@ -0,0 +1,358 @@
// ***********************************************************
// * *
// * 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
}
// 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");
}
}

View file

@ -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";
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -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";
}
}

View file

@ -468,7 +468,11 @@ gzdoom
{
zdoom
{
blocking = 2;
5004 = "Map Spot (FraggleScript)";
5004
{
title = "Map Spot (FraggleScript)";
sprite = "internal:MapSpot";
class = "FS_MapSpot";
}
}
}

View file

@ -1,4 +1,3 @@
misc
{
@ -401,7 +400,7 @@ door
title = "Movement Speed";
type = 11;
enum = "door_speeds";
default = 32;
default = 16;
}
arg2
@ -427,7 +426,7 @@ door
title = "Movement Speed";
type = 11;
enum = "door_speeds";
default = 32;
default = 16;
}
arg2
@ -453,7 +452,7 @@ door
title = "Movement Speed";
type = 11;
enum = "door_speeds";
default = 32;
default = 16;
}
arg2
@ -461,7 +460,7 @@ door
title = "Close Delay";
type = 11;
enum = "reset_tics";
default = 105;
default = 150;
}
arg3
@ -487,7 +486,7 @@ door
title = "Movement Speed";
type = 11;
enum = "door_speeds";
default = 32;
default = 16;
}
arg2
@ -495,7 +494,7 @@ door
title = "Close Delay";
type = 11;
enum = "reset_tics";
default = 105;
default = 150;
}
arg3
@ -1453,8 +1452,9 @@ teleport
arg0
{
title = "Target MapSpot Tag";
title = "Target Teleport Dest. Tag";
type = 14;
targetclasses = "TeleportDest,TeleportDest2,TeleportDest3";
}
arg1
@ -1471,8 +1471,9 @@ teleport
arg0
{
title = "Target MapSpot Tag";
title = "Target Teleport Dest. Tag";
type = 14;
targetclasses = "TeleportDest,TeleportDest2,TeleportDest3";
}
arg1
@ -1501,7 +1502,7 @@ teleport
arg1
{
title = "Position";
title = "Tgt Player Start Arg0";
}
}
}
@ -1608,6 +1609,7 @@ thing
{
title = "MapSpot Tag";
type = 14;
targetclasses = "MapSpot,MapSpotGravity";
}
arg1
@ -1643,6 +1645,7 @@ thing
{
title = "MapSpot Tag";
type = 14;
targetclasses = "MapSpot,MapSpotGravity";
}
arg1
@ -1668,6 +1671,7 @@ thing
{
title = "MapSpot Tag";
type = 14;
targetclasses = "MapSpot,MapSpotGravity";
}
arg1
@ -1703,6 +1707,7 @@ thing
{
title = "Target MapSpot Tag";
type = 14;
targetclasses = "MapSpot,MapSpotGravity";
}
arg1
@ -2183,5 +2188,4 @@ sector
title = "Sound Number";
}
}
}
}

View file

@ -1,4 +1,3 @@
players
{
color = 10; // Light Green
@ -519,23 +518,23 @@ puzzle
}
9014
{
title = "Flame mask";
title = "Flame Mask";
sprite = "ASK2A0";
}
9015
{
title = "Glaive seal";
title = "Glaive Seal";
sprite = "AFWPA0";
}
9016
{
title = "Holy relic";
title = "Holy Relic";
sprite = "ACWPA0";
width = 10;
}
9017
{
title = "Sigil of the magus";
title = "Sigil of the Magus";
sprite = "AMWPA0";
width = 10;
}
@ -666,6 +665,7 @@ obstacles
title = "Bell";
sprite = "BBLLA0";
width = 56;
hangs = 1;
}
103
{
@ -1518,6 +1518,7 @@ other
title = "Polyobject Anchor";
sprite = "internal:anchor";
fixedrotation = true;
error = 0; // Can be outside of map geometry
}
3001
{
@ -1622,6 +1623,16 @@ other
}
112 = "Spawn Fly";
113 = "Spawn Leaf";
9001 = "Map Spot";
9013 = "Map Spot (gravity)";
9001
{
title = "Map Spot";
sprite = "internal:MapSpot";
class = "MapSpot";
}
9013
{
title = "Map Spot (gravity)";
sprite = "internal:MapSpotGravity";
class = "MapSpotGravity";
}
}

View file

@ -1375,7 +1375,7 @@ forcefield
147
{
title = "ForceField Remove Around Tagged Sector";
prefix = "SR";
prefix = "S1";
}
148

View file

@ -401,7 +401,7 @@ ammunition
153
{
title = "Phoshorus-Grenade Rounds";
title = "Phosphorus-Grenade Rounds";
sprite = "GRN2A0";
}

View file

@ -27,12 +27,18 @@ common
// 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
sidedefcompressionignoresaction = true;
// Texture sources
textures

View file

@ -2,111 +2,12 @@
// Generalized sector types
gen_sectortypes
{
effect
{
0 = "Normal";
1 = "Light Phased";
2 = "Light Sequence Start";
3 = "Light Sequence Special 1";
4 = "Light Sequence Special 2";
21 = "Light Phased";
22 = "Light Sequence Start";
23 = "Light Sequence Special 1";
24 = "Light Sequence Special 2";
26 = "Stairs Special 1";
27 = "Stairs Special 2";
65 = "Light Flicker";
66 = "Light Strobe Fast";
67 = "Light Strobe Slow";
68 = "Light Strobe Hurt";
69 = "Damage Hellslime";
71 = "Damage Nukage";
72 = "Light Glow";
74 = "Sector Door Close (30 sec)";
75 = "Damage End Level";
76 = "Light StrobeSlowSync";
77 = "Light StrobeFastSync";
78 = "Sector Door Raise (5 min)";
79 = "Low Friction";
80 = "Damage Super Hellslime";
81 = "Light Fire Flicker";
82 = "Damage -2 or -5% health (no protection)";
83 = "Damage -4 or -8% health (no protection)";
84 = "Scroll east + -2 or -5% health (no protection)";
87 = "Sector uses outside fog";
105 = "Delayed damage weak";
115 = "Instant death";
116 = "Delayed damage strong";
118 = "Carry player by tag";
196 = "Healing Sector";
197 = "Lightning Outdoor";
198 = "Lightning Indoor 2";
199 = "Lightning Indoor 1";
200 = "Sky 2 (MAPINFO)";
201 = "Scroll North (slow)";
202 = "Scroll North (medium)";
203 = "Scroll North (fast)";
204 = "Scroll East (slow)";
205 = "Scroll East (medium)";
206 = "Scroll East (fast)";
207 = "Scroll South (slow)";
208 = "Scroll South (medium)";
209 = "Scroll South (fast)";
210 = "Scroll West (slow)";
211 = "Scroll West (medium)";
212 = "Scroll West (fast)";
213 = "Scroll NorthWest (slow)";
214 = "Scroll NorthWest (medium)";
215 = "Scroll NorthWest (fast)";
216 = "Scroll NorthEast (slow)";
217 = "Scroll NorthEast (medium)";
218 = "Scroll NorthEast (fast)";
219 = "Scroll SouthEast (slow)";
220 = "Scroll SouthEast (medium)";
221 = "Scroll SouthEast (fast)";
222 = "Scroll SouthWest (slow)";
223 = "Scroll SouthWest (medium)";
224 = "Scroll SouthWest (fast)";
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";
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";
}
damage
{
0 = "None";
256 = "Damage 5 per second";
512 = "Damage 10 per second";
768 = "Damage 20 per second";
256 = "5 per second";
512 = "10 per second";
768 = "20 per second";
}
secret

View file

@ -1,4 +1,3 @@
// NOTE: This config contains four structures for different linedefs systems: Doom, Hexen and UDMF.
// The ZDoom structure is common to Hexen and UDMF and contains the bulk of the definitions.
// The Hexen and UDMF structures contain only the little tweaks needed for these formats.
@ -481,6 +480,7 @@ zdoom
{
title = "Target MapSpot Tag";
type = 14;
targetclasses = "MapSpot,MapSpotGravity";
}
}
86
@ -502,6 +502,7 @@ zdoom
{
title = "Target MapSpot Tag";
type = 14;
targetclasses = "MapSpot,MapSpotGravity";
}
}
87
@ -639,6 +640,47 @@ zdoom
}
}
}
107
{
title = "Line Set Portal Target";
id = "Line_SetPortalTarget";
arg0
{
title = "Source Line Tag";
type = 15;
}
arg1
{
title = "Target Line Tag";
type = 15;
}
}
55
{
title = "Line Set Blocking";
id = "Line_SetBlocking";
arg0
{
title = "Target Line Tag";
type = 15;
}
arg1
{
title = "Set Flags";
type = 12;
enum = "linesetblockingflags";
}
arg2
{
title = "Clear Flags";
type = 12;
enum = "linesetblockingflags";
}
}
}
door
@ -658,14 +700,14 @@ zdoom
title = "Animation Speed";
type = 11;
enum = "door_speeds";
default = 32;
default = 16;
}
arg2
{
title = "Close Delay";
type = 11;
enum = "reset_tics";
default = 140;
default = 150;
}
arg3
{
@ -851,21 +893,30 @@ zdoom
{
title = "Target";
type = 11;
enum = "generic_floor_target";
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 = "Options";
title = "Flags";
type = 12;
enum
{
0 = "No change";
1 = "Zero sector's special";
2 = "Change sector's floor texture";
3 = "Change sector's special";
0 = "Don't copy anything";
1 = "Copy floor texture, remove sector special";
2 = "Copy floor texture";
3 = "Copy floor texture and special";
4 = "Use numeric model if set, trigger model if not";
8 = "Raise floor if set, lower it if not";
16 = "Cause crushing damage";
16 = "Inflict crushing damage";
}
}
}
@ -1622,21 +1673,30 @@ zdoom
{
title = "Target";
type = 11;
enum = "generic_ceiling_target";
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 = "Options";
title = "Flags";
type = 12;
enum
{
0 = "No change";
1 = "Zero sector's special";
2 = "Change sector's ceiling texture";
3 = "Change sector's special";
0 = "Don't copy anything";
1 = "Copy ceiling texture, remove sector special";
2 = "Copy ceiling texture";
3 = "Copy ceiling texture and special";
4 = "Use numeric model if set, trigger model if not";
8 = "Raise ceiling if set, lower it if not";
16 = "Cause crushing damage";
16 = "Inflict crushing damage";
}
}
}
@ -2092,8 +2152,9 @@ zdoom
arg0
{
title = "Target MapSpot Tag";
title = "Target Teleport Dest. Tag";
type = 14;
targetclasses = "TeleportDest,TeleportDest2,TeleportDest3";
}
arg1
{
@ -2112,6 +2173,18 @@ zdoom
}
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";
@ -2142,6 +2215,7 @@ zdoom
{
title = "Target MapSpot Tag";
type = 14;
targetclasses = "MapSpot,MapSpotGravity";
}
arg2
{
@ -2158,17 +2232,20 @@ zdoom
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
{
@ -2195,13 +2272,15 @@ zdoom
}
arg1
{
title = "Source MapSpot Tag";
title = "Source Tag";
tooltip = "The spot relative to which to teleport.";
type = 14;
}
arg2
{
title = "Target MapSpot Tag";
title = "Target Teleport Dest. Tag";
type = 14;
targetclasses = "TeleportDest,TeleportDest2,TeleportDest3";
}
arg3
{
@ -2212,6 +2291,7 @@ zdoom
arg4
{
title = "Group Thing Tag";
tooltip = "The TID of the thing(s) to teleport.\nIf 0, teleports all actors in the sector";
type = 14;
}
}
@ -2222,8 +2302,9 @@ zdoom
arg0
{
title = "Target MapSpot Tag";
title = "Target Teleport Dest. Tag";
type = 14;
targetclasses = "TeleportDest,TeleportDest2,TeleportDest3";
}
arg1
{
@ -2459,6 +2540,7 @@ zdoom
{
title = "Mapspot Tag";
type = 14;
targetclasses = "MapSpot,MapSpotGravity";
}
arg1
{
@ -2487,6 +2569,7 @@ zdoom
{
title = "Mapspot Tag";
type = 14;
targetclasses = "MapSpot,MapSpotGravity";
}
arg1
{
@ -2565,6 +2648,7 @@ zdoom
{
title = "Mapspot Tag";
type = 14;
targetclasses = "MapSpot,MapSpotGravity";
}
arg1
{
@ -3275,6 +3359,7 @@ zdoom
3 = "Plane portal";
4 = "Horizon portal";
5 = "Copy portal to line";
6 = "Interactive portal";
}
}
arg2
@ -3286,12 +3371,13 @@ zdoom
0 = "Floor";
1 = "Ceiling";
2 = "Both";
3 = "Any (Copy portal type only)";
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
{
@ -3323,7 +3409,7 @@ zdoom
}
160
{
title = "Sector 3D Floor (OpenGL only)";
title = "Sector Set 3D Floor";
id = "Sector_Set3dFloor";
requiresactivation = false;
@ -3356,11 +3442,13 @@ zdoom
{
1 = "Disable light effects";
2 = "Restrict light inside";
4 = "Fog effect";
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
@ -4304,4 +4392,4 @@ udmf
{
121 = NULL;
}
}
}

View file

@ -732,46 +732,20 @@ enums
4 = "Lower";
}
generic_floor_target
linesetblockingflags
{
0 = "Relative offset";
1 = "Highest neighbor";
2 = "Lowest neighbor";
3 = "Nearest neighbor";
4 = "Lowest neighbor";
5 = "Ceiling";
6 = "Shortest lower texture";
}
generic_ceiling_target
{
0 = "Relative offset";
1 = "Highest neighbor";
2 = "Lowest neighbor";
3 = "Nearest neighbor";
4 = "Highest neighbor";
5 = "Floor";
6 = "Shortest lower texture";
}
generic_door_types
{
0 = "Open Close";
1 = "Open Stay";
2 = "Close Open";
3 = "Close Stay";
64 = "Open Close (no retrigger)";
65 = "Open Stay (no retrigger)";
66 = "Close Open (no retrigger)";
67 = "Close Stay (no retrigger)";
128 = "Open Close (tag is light tag)";
129 = "Open Stay (tag is light tag)";
130 = "Close Open (tag is light tag)";
131 = "Close Stay (tag is light tag)";
192 = "Open Close (no retrigger, tag is light tag)";
193 = "Open Stay (no retrigger, tag is light tag)";
194 = "Close Open (no retrigger, tag is light tag)";
195 = "Close Stay (no retrigger, tag is light tag)";
0 = "None";
1 = "Block creatures";
2 = "Block monsters";
4 = "Block players";
8 = "Block floating creatures";
16 = "Block projectiles";
32 = "Block all of the above";
64 = "Strife railing";
128 = "Block use action";
256 = "Block monster line of sight";
512 = "Block hitscan attacks";
1024 = "Block sound";
}
generic_lift_types
@ -876,6 +850,7 @@ enums
70 = "70: 2 Seconds";
105 = "105: 3 Seconds";
140 = "140: 4 Seconds";
150 = "150: Doom default";
175 = "175: 5 Seconds";
210 = "210: 6 Seconds";
245 = "245: 7 Seconds";
@ -1421,20 +1396,20 @@ enums_hexen
0 = "Yorick's skull";
1 = "Heart of D'Sparil";
2 = "Ruby Planet";
3 = "Emerald Planet (1)";
4 = "Emerald Planet (2)";
5 = "Sapphire Planet (1)";
6 = "Sapphire Planet (2)";
3 = "Emerald Planet 1";
4 = "Emerald Planet 2";
5 = "Sapphire Planet 1";
6 = "Sapphire Planet 2";
7 = "Daemon Codex";
8 = "Liber Obscura";
9 = "Flame Mask";
10 = "Glaive Seal";
11 = "Holy Relic";
12 = "Sigil of the Magus";
13 = "Iron gear";
14 = "Brass gear";
15 = "Brass and iron gear";
16 = "Silver and brass gear";
13 = "Clock Gear (steel)";
14 = "Clock Gear (bronze)";
15 = "Clock Gear (steel and bronze)";
16 = "Clock Gear (bronze and steel)";
}
}
@ -1930,3 +1905,25 @@ doormaking_udmf
makedoorarg4 = 0;
}
//mxd. Ambient sound thing args (because copy-pasting those 66 times is not fun)
ambientsoundthing_args
{
arg1
{
title = "Volume";
type = 11;
enum = "sound_volume";
}
arg2
{
title = "Min. Fading Distance";
}
arg3
{
title = "Max. Heard Distance";
}
arg4
{
title = "Distance Multiplier";
}
}

View file

@ -52,10 +52,12 @@ zdoom
84 = "Scroll east + -2 or -5% health (no protection)";
85 = "Damage Sludge -4% health";
87 = "Sector uses outside fog";
90 = "Skybox sector (GZDoom only)";
105 = "Delayed damage weak (hazardcount +2/16 per second)";
115 = "Instant death";
116 = "Delayed damage strong (hazardcount +4/16 per second)";
118 = "Carry player by tag";
195 = "Hidden Sector (automap)";
196 = "Healing Sector";
197 = "Lightning Outdoor";
198 = "Lightning Indoor 2";

View file

@ -121,70 +121,326 @@ zdoom
}
}
14001 = "Ambient Sound 01";
14002 = "Ambient Sound 02";
14003 = "Ambient Sound 03";
14004 = "Ambient Sound 04";
14005 = "Ambient Sound 05";
14006 = "Ambient Sound 06";
14007 = "Ambient Sound 07";
14008 = "Ambient Sound 08";
14009 = "Ambient Sound 09";
14010 = "Ambient Sound 10";
14011 = "Ambient Sound 11";
14012 = "Ambient Sound 12";
14013 = "Ambient Sound 13";
14014 = "Ambient Sound 14";
14015 = "Ambient Sound 15";
14016 = "Ambient Sound 16";
14017 = "Ambient Sound 17";
14018 = "Ambient Sound 18";
14019 = "Ambient Sound 19";
14020 = "Ambient Sound 20";
14021 = "Ambient Sound 21";
14022 = "Ambient Sound 22";
14023 = "Ambient Sound 23";
14024 = "Ambient Sound 24";
14025 = "Ambient Sound 25";
14026 = "Ambient Sound 26";
14027 = "Ambient Sound 27";
14028 = "Ambient Sound 28";
14029 = "Ambient Sound 29";
14030 = "Ambient Sound 30";
14031 = "Ambient Sound 31";
14032 = "Ambient Sound 32";
14033 = "Ambient Sound 33";
14034 = "Ambient Sound 34";
14035 = "Ambient Sound 35";
14036 = "Ambient Sound 36";
14037 = "Ambient Sound 37";
14038 = "Ambient Sound 38";
14039 = "Ambient Sound 39";
14040 = "Ambient Sound 40";
14041 = "Ambient Sound 41";
14042 = "Ambient Sound 42";
14043 = "Ambient Sound 43";
14044 = "Ambient Sound 44";
14045 = "Ambient Sound 45";
14046 = "Ambient Sound 46";
14047 = "Ambient Sound 47";
14048 = "Ambient Sound 48";
14049 = "Ambient Sound 49";
14050 = "Ambient Sound 50";
14051 = "Ambient Sound 51";
14052 = "Ambient Sound 52";
14053 = "Ambient Sound 53";
14054 = "Ambient Sound 54";
14055 = "Ambient Sound 55";
14056 = "Ambient Sound 56";
14057 = "Ambient Sound 57";
14058 = "Ambient Sound 58";
14059 = "Ambient Sound 59";
14060 = "Ambient Sound 60";
14061 = "Ambient Sound 61";
14062 = "Ambient Sound 62";
14063 = "Ambient Sound 63";
14064 = "Ambient Sound 64";
14001
{
title = "Ambient Sound 01";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14002
{
title = "Ambient Sound 02";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14003
{
title = "Ambient Sound 03";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14004
{
title = "Ambient Sound 04";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14005
{
title = "Ambient Sound 05";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14006
{
title = "Ambient Sound 06";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14007
{
title = "Ambient Sound 07";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14008
{
title = "Ambient Sound 08";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14009
{
title = "Ambient Sound 09";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14010
{
title = "Ambient Sound 10";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14011
{
title = "Ambient Sound 11";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14012
{
title = "Ambient Sound 12";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14013
{
title = "Ambient Sound 13";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14014
{
title = "Ambient Sound 14";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14015
{
title = "Ambient Sound 15";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14016
{
title = "Ambient Sound 16";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14017
{
title = "Ambient Sound 17";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14018
{
title = "Ambient Sound 18";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14019
{
title = "Ambient Sound 19";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14020
{
title = "Ambient Sound 20";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14021
{
title = "Ambient Sound 21";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14022
{
title = "Ambient Sound 22";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14023
{
title = "Ambient Sound 23";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14024
{
title = "Ambient Sound 24";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14025
{
title = "Ambient Sound 25";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14026
{
title = "Ambient Sound 26";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14027
{
title = "Ambient Sound 27";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14028
{
title = "Ambient Sound 28";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14029
{
title = "Ambient Sound 29";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14030
{
title = "Ambient Sound 30";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14031
{
title = "Ambient Sound 31";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14032
{
title = "Ambient Sound 32";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14033
{
title = "Ambient Sound 33";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14034
{
title = "Ambient Sound 34";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14035
{
title = "Ambient Sound 35";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14036
{
title = "Ambient Sound 36";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14037
{
title = "Ambient Sound 37";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14038
{
title = "Ambient Sound 38";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14039
{
title = "Ambient Sound 39";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14040
{
title = "Ambient Sound 40";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14041
{
title = "Ambient Sound 41";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14042
{
title = "Ambient Sound 42";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14043
{
title = "Ambient Sound 43";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14044
{
title = "Ambient Sound 44";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14045
{
title = "Ambient Sound 45";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14046
{
title = "Ambient Sound 46";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14047
{
title = "Ambient Sound 47";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14048
{
title = "Ambient Sound 48";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14049
{
title = "Ambient Sound 49";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14050
{
title = "Ambient Sound 50";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14051
{
title = "Ambient Sound 51";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14052
{
title = "Ambient Sound 52";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14053
{
title = "Ambient Sound 53";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14054
{
title = "Ambient Sound 54";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14055
{
title = "Ambient Sound 55";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14056
{
title = "Ambient Sound 56";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14057
{
title = "Ambient Sound 57";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14058
{
title = "Ambient Sound 58";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14059
{
title = "Ambient Sound 59";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14060
{
title = "Ambient Sound 60";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14061
{
title = "Ambient Sound 61";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14062
{
title = "Ambient Sound 62";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14063
{
title = "Ambient Sound 63";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14064
{
title = "Ambient Sound 64";
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14065
{
@ -194,24 +450,7 @@ zdoom
{
title = "Ambient Sound Index";
}
arg1
{
title = "Volume";
type = 11;
enum = "sound_volume";
}
arg2
{
title = "Min. Fading Distance";
}
arg3
{
title = "Max. Heard Distance";
}
arg4
{
title = "Distance Multiplier";
}
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14066
@ -236,24 +475,7 @@ zdoom
{
title = "Ambient Sound Index";
}
arg1
{
title = "Volume";
type = 11;
enum = "sound_volume";
}
arg2
{
title = "Min. Fading Distance";
}
arg3
{
title = "Max. Heard Distance";
}
arg4
{
title = "Distance Multiplier";
}
include("ZDoom_misc.cfg", "ambientsoundthing_args");
}
14101 = "Music Changer 01";
@ -941,7 +1163,7 @@ zdoom
height = 8;
arg0
{
title = "Line";
title = "Line Tag";
type = 15;
}
}
@ -953,7 +1175,7 @@ zdoom
height = 4;
arg0
{
title = "Line";
title = "Line Tag";
type = 15;
}
}
@ -1091,6 +1313,7 @@ zdoom
sprite = "internal:anchor";
class = "$PolyAnchor";
fixedrotation = true;
error = 0; // Can be outside of map geometry
}
9301

View file

@ -41,6 +41,12 @@ linetagindicatesectors = true;
// The format interface handles the map data format - DoomMapSetIO for SRB2DB2, SRB2MapSetIO for Zone Builder
formatinterface = "SRB2MapSetIO";
//Maximum safe map size check (0 means skip check)
safeboundary = 0;
//Don't do vanilla-style thing rotation angle clamping
doomthingrotationangles = false;
//Sky textures for vanilla maps
defaultskytextures
@ -2518,6 +2524,7 @@ linedeftypes
prefix = "(439)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Only existing";
flags8192text = "[13] Use backside textures";
}
440
@ -5011,10 +5018,10 @@ thingtypes
}
}
invisible
ambience
{
color = 15; // White
title = "Misc. Invisible";
title = "Ambience";
width = 8;
height = 16;
sprite = "UNKNA0";
@ -5084,6 +5091,15 @@ thingtypes
title = "Machine Ambience";
sprite = "internal:ambiance";
}
}
invisible
{
color = 15; // White
title = "Misc. Invisible";
width = 8;
height = 16;
sprite = "UNKNA0";
750
{
@ -5168,6 +5184,7 @@ thingtypes
angletext = "Tag";
fixedrotation = 1;
tagthing = true;
unflippable = true;
}
761
@ -5177,6 +5194,7 @@ thingtypes
angletext = "Tag";
fixedrotation = 1;
tagthing = true;
unflippable = true;
}
762
@ -5186,6 +5204,7 @@ thingtypes
angletext = "Tag";
fixedrotation = 1;
tagthing = true;
unflippable = true;
}
780
{
@ -6508,14 +6527,14 @@ thingtypes
{
arrow = 1;
title = "Hoop (Generic)";
sprite = "HOOPA0";
sprite = "internal:nightshoop";
width = 80;
height = 160;
unflippable = true;
centerHitbox = true;
flagsvaluetext = "Height";
angletext = "Pitch/Yaw";
fixedrotation = 1;
parametertext = "Degrees?";
}
1706
{
@ -6570,11 +6589,13 @@ thingtypes
flags2text = "[2] Radius +32";
flags4text = "[4] Radius +64";
flags8text = "[8] Radius +128";
sprite = "HOOPA0";
sprite = "internal:nightshoop";
width = 80;
height = 160;
unflippable = true;
centerHitbox = true;
angletext = "Pitch/Yaw";
parametertext = "Degrees?";
}
1714
{

Binary file not shown.

View file

@ -106,10 +106,13 @@ keywords
CheckActorFloorTexture = "bool CheckActorFloorTexture(int tid, str texture)";
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";
CheckPlayerCamera = "int CheckPlayerCamera(int player)";
CheckProximity = "bool CheckProximity(int tid, str classname, float distance[, int count = 1[, int flags = 0[, int pointer = AAPTR_DEFAULT]]])";
CheckSight = "bool CheckSight(int source, int dest, int flags)";
CheckWeapon = "bool CheckWeapon(str weapon)\nChecks if player's active weapon is the weapon with specified class name.";
ClassifyActor = "int ClassifyActor(int tid)";
@ -120,6 +123,7 @@ keywords
//ConsoleCommand = "void ConsoleCommand(str command)";
Cos = "fixed Cos(int angle)";
CreateTranslation = "void CreateTranslation(int transnumber, a:b=c:d, ...)";
DamageActor = "int DamageActor(int targettid, int targetptr, int inflictortid, int inflictorptr, int damage, str damagetype)";
DamageThing = "DamageThing(amount, mod)";
Delay = "void Delay(int tics)";
Door_Animated = "Door_Animated(tag, speed, delay, lock)";
@ -222,7 +226,8 @@ keywords
GetSectorUDMFInt = "int GetSectorUDMFInt(int tag, str key)";
GetSideUDMFFixed = "fixed GetSideUDMFFixed(int lineid, bool side, str key)";
GetSideUDMFInt = "int GetSideUDMFInt(int lineid, bool side, str key)";
GetSigilPieces = "int GetSigilPieces(void)\nReturns the number of Sigil pieces that are held by the player";
GetSigilPieces = "int GetSigilPieces()\nReturns the number of Sigil pieces that are held by the player";
GetSpriteRotation = "int GetSpriteRotation(int ptr)";
GetThingUDMFFixed = "fixed GetThingUDMFFixed(int thingid, str key)";
GetThingUDMFInt = "int GetThingUDMFInt(int thingid, str key)";
GetUserArray = "void GetUserArray(int tid, str name, int pos)";
@ -256,6 +261,7 @@ keywords
Line_AlignCeiling = "Line_AlignCeiling(lineid, side)";
Line_AlignFloor = "Line_AlignFloor(lineid, side)";
Line_SetBlocking = "Line_SetBlocking(lineid, setflags, clearflags)";
Line_SetPortalTarget = "Line_SetPortalTarget(sourcelineid, targetlineid)";
Line_SetTextureOffset = "Line_SetTextureOffset(lineid, x, y, side, flags)";
Line_SetTextureScale = "Line_SetTextureScale(lineid, x, y, side, flags)";
LineSide = "int LineSide(void)";
@ -308,7 +314,7 @@ keywords
PolyWait = "void PolyWait(int polyid)";
Print = "void Print(type:expression)\nPrint will print something to the screen.\nPrint will only display for the activator of the script\nFor printing to all players, use PrintBold.";
PrintBold = "void PrintBold(type:expression)\nThis is exactly the same as Print, except all players will see the printed text\non the screen instead of just the activator of the script.";
QuakeEx = "bool QuakeEx(int tid, int intensityX, int intensityY, int intensityZ, int duration, int damrad, int tremrad, str sound[, int flags = 0[, float mulwavex = 1.0[, float mulwavey = 1.0[, float mulwavez = 1.0]]]])";
QuakeEx = "bool QuakeEx(int tid, int intensityX, int intensityY, int intensityZ, int duration, int damrad, int tremrad, str sound[, int flags = 0[, float mulwavex = 1.0[, float mulwavey = 1.0[, float mulwavez = 1.0[, int falloff = 0[, int highpoint = 0]]]]]])";
Radius_Quake = "Radius_Quake(intensity, duration, damrad, tremrad, tid)";
Radius_Quake2 = "void Radius_Quake2(int tid, int intensity, int duration, int damrad, int tremrad, str sound)";
Random = "int Random(int min, int max)";
@ -372,6 +378,7 @@ keywords
SetMarineWeapon = "void SetMarineWeapon(int tid, int weapon)\nSets a Scripted Marine's weapon on the fly.\nweapon: one of MARINEWEAPON_ flags";
SetMugShotState = "void SetMugShotState(str state)\nSets the state of the mug shot in SBARINFO status bars.\nThe state you set will only be interrupted by damage or if the player\npicks up a weapon, provided the mugshot supports it.";
SetMusic = "void SetMusic(str song[, int order[, int unused]])";
SetMusicVolume = "void SetMusicVolume(float volume)";
SetPlayerProperty = "SetPlayerProperty(who, set, which)";
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)";
@ -494,6 +501,7 @@ properties
LIGHTNING;
NET;
OPEN;
REOPEN;
RESPAWN;
Restart;
return;
@ -548,6 +556,7 @@ constants
APROP_Damage;
APROP_DamageFactor;
APROP_DamageMultiplier;
APROP_DamageType;
APROP_DeathSound;
APROP_Dormant;
APROP_Dropped;
@ -656,6 +665,19 @@ constants
CLASS_CLERIC;
CLASS_FIGHTER;
CLASS_MAGE;
CPXF_ANCESTOR;
CPXF_LESSOREQUAL;
CPXF_NOZ;
CPXF_COUNTDEAD;
CPXF_DEADONLY;
CPXF_EXACT;
CPXF_SETTARGET;
CPXF_SETMASTER;
CPXF_SETTRACER;
CPXF_FARTHEST;
CPXF_CLOSEST;
CPXF_SETONPTR;
CPXF_CHECKSIGHT;
CR_BLACK;
CR_BLUE;
CR_BRICK;

View file

@ -75,21 +75,21 @@ keywords
A_ClearLastHeard = "A_ClearLastHeard";
A_ClearSoundTarget = "A_ClearSoundTarget";
A_ClearTarget = "A_ClearTarget";
A_DamageChildren = "A_DamageChildren(int amount[, str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"]]]])\namount: amount of damage to inflict. Use a negative value to heal.\ndamagetype: the type of damage to inflict.\nflags: DMSS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_DamageMaster = "A_DamageMaster(int amount[, str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"]]]])\namount: amount of damage to inflict. Use a negative value to heal.\ndamagetype: the type of damage to inflict.\nflags: DMSS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_DamageSelf = "A_DamageSelf(int amount[, str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"]]]])\namount: amount of damage to inflict. Use a negative value to heal.\ndamagetype: the type of damage to inflict.\nflags: DMSS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_DamageSiblings = "A_DamageSiblings(int amount[, str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"]]]])\namount: amount of damage to inflict. Use a negative value to heal.\ndamagetype: the type of damage to inflict.\nflags: DMSS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_DamageTarget = "A_DamageTarget(int amount[, str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"]]]])\namount: amount of damage to inflict. Use a negative value to heal.\ndamagetype: the type of damage to inflict.\nflags: DMSS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_DamageTracer = "A_DamageTracer(int amount[, str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"]]]])\namount: amount of damage to inflict. Use a negative value to heal.\ndamagetype: the type of damage to inflict.\nflags: DMSS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_DamageChildren = "A_DamageChildren(int amount[, str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"[, int src = AAPTR_DEFAULT[, int inflictor = AAPTR_DEFAULT]]]]]])\namount: amount of damage to inflict. Use a negative value to heal.\ndamagetype: the type of damage to inflict.\nflags: DMSS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_DamageMaster = "A_DamageMaster(int amount[, str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"[, int src = AAPTR_DEFAULT[, int inflictor = AAPTR_DEFAULT]]]]]])\namount: amount of damage to inflict. Use a negative value to heal.\ndamagetype: the type of damage to inflict.\nflags: DMSS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_DamageSelf = "A_DamageSelf(int amount[, str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"[, int src = AAPTR_DEFAULT[, int inflictor = AAPTR_DEFAULT]]]]]])\namount: amount of damage to inflict. Use a negative value to heal.\ndamagetype: the type of damage to inflict.\nflags: DMSS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_DamageSiblings = "A_DamageSiblings(int amount[, str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"[, int src = AAPTR_DEFAULT[, int inflictor = AAPTR_DEFAULT]]]]]])\namount: amount of damage to inflict. Use a negative value to heal.\ndamagetype: the type of damage to inflict.\nflags: DMSS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_DamageTarget = "A_DamageTarget(int amount[, str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"[, int src = AAPTR_DEFAULT[, int inflictor = AAPTR_DEFAULT]]]]]])\namount: amount of damage to inflict. Use a negative value to heal.\ndamagetype: the type of damage to inflict.\nflags: DMSS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_DamageTracer = "A_DamageTracer(int amount[, str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"[, int src = AAPTR_DEFAULT[, int inflictor = AAPTR_DEFAULT]]]]]])\namount: amount of damage to inflict. Use a negative value to heal.\ndamagetype: the type of damage to inflict.\nflags: DMSS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_Die = "A_Die[(str damagetype = \"none\")]";
A_FaceTarget = "A_FaceTarget[(float angle = 0.0[, float pitch = 270.0])]\nA_FaceTarget([float max_turn = 0.0[, float max_pitch = 270.0[, float ang_offset = 0.0[, float pitch_offset = 0.0[, int flags = 0[, float z_add = 0.0]]]]]])";
A_FaceMaster = "A_FaceMaster[(float angle = 0.0[, float pitch = 270.0])]\nA_FaceMaster([float max_turn = 0.0[, float max_pitch = 270.0[, float ang_offset = 0.0[, float pitch_offset = 0.0[, int flags = 0[, float z_add = 0.0]]]]]])";
A_FastChase = "A_FastChase";
A_KillChildren = "A_KillChildren[(str damagetype = \"None\"[, int flags = 0[, str filter = \"None\[, str species = \"None\]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_KillMaster = "A_KillMaster[(str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_KillSiblings = "A_KillSiblings[(str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_KillTarget = "A_KillTarget[(str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_KillTracer = "A_KillTracer[(str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_KillChildren = "A_KillChildren[(str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"[, int src = AAPTR_DEFAULT[, int inflictor = AAPTR_DEFAULT]]]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_KillMaster = "A_KillMaster[(str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"[, int src = AAPTR_DEFAULT[, int inflictor = AAPTR_DEFAULT]]]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_KillSiblings = "A_KillSiblings[(str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"[, int src = AAPTR_DEFAULT[, int inflictor = AAPTR_DEFAULT]]]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_KillTarget = "A_KillTarget[(str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"[, int src = AAPTR_DEFAULT[, int inflictor = AAPTR_DEFAULT]]]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_KillTracer = "A_KillTracer[(str damagetype = \"None\"[, int flags = 0[, str filter = \"None\"[, str species = \"None\"[, int src = AAPTR_DEFAULT[, int inflictor = AAPTR_DEFAULT]]]]])]\ndamagetype: if the actor dies, the actor will enter a death state based on damagetype if present (or pain state if using NODAMAGE).\nflags: KILS flags.\nfilter: the actor class to damage.\nspecies: the actor species to damage.";
A_Look = "A_Look";
A_Look2 = "A_Look2";
A_LookEx = "A_LookEx(int flags, float minseedist, float maxseedist, float maxheardist, float fov, state seestate)";
@ -105,7 +105,6 @@ keywords
A_SentinelBob = "A_SentinelBob";
A_SetTeleFog = "A_SetTeleFog(str telefogsourceclass, str telefogdestclass)";
A_Srcr2Decide = "A_Srcr2Decide";
A_SwapTeleFog = "A_SwapTeleFog";
A_TurretLook = "A_TurretLook";
A_Teleport = "state A_Teleport[(str teleportstate = \"Teleport\"[, str targettype = \"BossSpot\"[, str fogtype = \"TeleportFog\"[, int flags = 0[, float mindist = 0.0[, float maxdist = 0.0[, int pointer = AAPTR_DEFAULT]]]]]])]\nbool A_Teleport[(str teleportstate = \"Teleport\"[, str targettype = \"BossSpot\"[, str fogtype = \"TeleportFog\"[, int flags = 0[, float mindist = 0.0[, float maxdist = 0.0[, int pointer = AAPTR_DEFAULT]]]]]])]";
A_VileChase = "A_VileChase";
@ -113,7 +112,7 @@ keywords
//Generic monster attacks
A_CustomMissile = "A_CustomMissile(str missiletype[, float spawnheight = 0.0[, int spawnofs_horiz = 0[, int angle = 0[, int aimflags = 0[, int pitch = 0[, int target = AAPTR_TARGET]]]]]])";
A_CustomBulletAttack = "A_CustomBulletAttack(float horz_spread, float vert_spread, int numbullets, int damageperbullet[, str pufftype = \"BulletPuff\"[, float range = 0.0[, int flags = 0[, int target = AAPTR_TARGET]]]])";
A_CustomRailgun = "A_CustomRailgun(int damage[, int offset[, color ringcolor[, color corecolor[, int flags = 0[, bool aim = false[, float maxdiff = 0.0[, str pufftype = \"\"[, float spread_xy = 0.0[, float spread_z = 0.0[, float range = 8192[, int duration = 35[, float sparsity = 1.0[, float driftspeed = 1.0[, str spawnclass = \"\"[, float spawnofs_z = 0[, int spiraloffset = 270]]]]]]]]]]]]]]]])";
A_CustomRailgun = "A_CustomRailgun(int damage[, int offset[, color ringcolor[, color corecolor[, int flags = 0[, bool aim = false[, float maxdiff = 0.0[, str pufftype = \"\"[, float spread_xy = 0.0[, float spread_z = 0.0[, float range = 8192[, int duration = 35[, float sparsity = 1.0[, float driftspeed = 1.0[, str spawnclass = \"\"[, float spawnofs_z = 0[, int spiraloffset = 270[, int actorpiercelimit = 0]]]]]]]]]]]]]]]]])";
A_CustomMeleeAttack = "A_CustomMeleeAttack[(int damage = 0[, str meleesound = \"\"[, str misssound = \"\"[, str damagetype = \"Melee\"[, bool bleed = true]]]])]";
A_CustomComboAttack = "A_CustomComboAttack(str missiletype, float spawnheight, int damage, str meleesound[, str damagetype = \"Melee\"[, bool bleed = true]])";
A_MonsterRefire = "state A_MonsterRefire(int chancecontinue, str abortstate)";
@ -150,6 +149,7 @@ keywords
A_PrintBold = "A_PrintBold(str text[, float time = 0.0[, str fontname = \"SmallFont\"]])";
A_Log = "A_Log(str text)";
A_LogInt = "A_LogInt(int number)";
A_LogFloat = "A_LogFloat(float number)";
//Special actions
A_BossDeath = "A_BossDeath";
A_KeenDie = "A_KeenDie[(int tag = 666)]";
@ -162,7 +162,7 @@ keywords
A_PlayerSkinCheck = "state A_PlayerSkinCheck(str state)";
A_SkullPop = "A_SkullPop[(str type = \"BloodySkull\")]";
A_Quake = "A_Quake(int intensity, int duration, int damageradius, int tremorradius[, str sound = \"world/quake\"])";
A_QuakeEx = "A_QuakeEx(int intensityX, int intensityY, int intensityZ, int duration, int damrad, int tremrad[, str sound = \"world/quake\"[, int flags = 0[, float mulwavex = 1.0[, float mulwavey = 1.0[, float mulwavez = 1.0]]]]])";
A_QuakeEx = "A_QuakeEx(int intensityX, int intensityY, int intensityZ, int duration, int damrad, int tremrad[, str sound = \"world/quake\"[, int flags = 0[, float mulwavex = 1.0[, float mulwavey = 1.0[, float mulwavez = 1.0[, int falloff = 0[, int highpoint = 0[, float rollintensity = 0.0[, float rollwave = 0.0]]]]]]]]])";
//Spawn functions
A_TossGib = "A_TossGib";
A_SpawnDebris = "A_SpawnDebris(str type[, bool translation = false[, float horizontal_vel = 1.0[, float vertical_vel = 1.0]]])";
@ -170,7 +170,7 @@ keywords
A_SpawnItemEx = "bool A_SpawnItemEx(str type[, float xoffset = 0.0[, float yoffset = 0.0[, float zoffset = 0.0[, float xvelocity = 0.0[, float yvelocity = 0.0[, float zvelocity = 0.0[, float angle = 0.0[, int flags = 0[, int skipchance = 0[, int tid = 0]]]]]]]]]])";
A_SpawnParticle = "A_SpawnParticle(color color[, int flags = 0[, int lifetime = 35[, int size = 1[, float angle = 0.0[, float xoff = 0.0[, float yoff = 0.0[, float zoff = 0.0[, float velx = 0.0[, float vely = 0.0[, float velz = 0.0[, float accelx = 0.0[, float accely = 0.0[, float accelz = 0.0[, float startalpha = 1.0[, float fadestep = -1.0]]]]]]]]]]]]]]])";
//State jumps
A_CheckBlock = "state A_CheckBlock(str block[, int flags = 0[, int pointer = AAPTR_TARGET]])";
A_CheckBlock = "state A_CheckBlock(str block[, int flags = 0[, int pointer = AAPTR_TARGET[, float xoff = 0.0[, float yoff = 0.0[, float zoff = 0.0[, float angle = 0.0]]]]]])";
A_CheckCeiling = "state A_CheckCeiling(str state)\nstate A_CheckCeiling(int offset)";
A_CheckFloor = "state A_CheckFloor(str state)\nstate A_CheckFloor(int offset)";
A_CheckFlag = "state A_CheckFlag(str flagname, state label[, int check_pointer = AAPTR_DEFAULT])";
@ -238,7 +238,7 @@ keywords
A_SetRipMin = "A_SetRipMin(int min)";
A_SetRipMax = "A_SetRipMax(int max)";
A_SetRoll = "A_SetRoll(float roll[, int flags = 0[, int pointer = AAPTR_DEFAULT]])";
A_SetScale = "A_SetScale(float scaleX[, float scaleY = scaleX[, int pointer = AAPTR_DEFAULT]])";
A_SetScale = "A_SetScale(float scaleX[, float scaleY = scaleX[, int pointer = AAPTR_DEFAULT[, bool usezero = false]]])";
A_SetShadow = "A_SetShadow";
A_SetShootable = "A_SetShootable";
A_SetSolid = "A_SetSolid";
@ -248,6 +248,9 @@ keywords
A_SetTics = "A_SetTics(int tics)";
A_SetTranslucent = "A_SetTranslucent(float alpha[, int mode = 0])";
A_SetUserVar = "A_SetUserVar(str name, int value)";
A_SetUserVarFloat = "A_SetUserVarFloat(str name, float value)";
A_SetVisibleRotation = "A_SetVisibleRotation(float anglestart[, float angleend = 0.0[, float pitchstart = 0.0[, float pitchend = 0.0[, int flags = 0[, int ptr = AAPTR_DEFAULT]]]]]])";
A_SwapTeleFog = "A_SwapTeleFog";
A_TransferPointer = "A_TransferPointer(int source, int recipient, int sourcefield, int recipientfield[, int flags])\nflags: PTROP flags.";
A_UnHideThing = "A_UnHideThing";
A_UnsetFloat = "A_UnsetFloat";
@ -280,9 +283,10 @@ keywords
A_DropInventory = "A_DropInventory(str type)";
A_DropItem = "A_DropItem(str item[, int dropamount = -1[, int chance = 256]])\nThe calling actor drops the specified item.\nThis works in a similar way to the DropItem actor property.";
A_SelectWeapon = "bool A_SelectWeapon(str type)";
A_RadiusGive = "int A_RadiusGive(str item, float distance, int flags[, int amount = 0[, str filter = \"None\"[, str species = \"None\"[, float mindist = 0]]]])\nflags: RGF flags.";
A_RadiusGive = "int A_RadiusGive(str item, float distance, int flags[, int amount = 0[, str filter = \"None\"[, str species = \"None\"[, int mindist = 0[, int limit = 0]]]]])\nflags: RGF flags.";
//Weapon functions
A_WeaponReady = "A_WeaponReady[(int flags = 0)]\nflags: WRF flags.";
A_WeaponOffset = "A_WeaponOffset[(float x = 0[, float y = 32[, int flags = 0])]\nflags: WOF flags.";
A_Lower = "A_Lower";
A_Raise = "A_Raise";
A_ReFire = "A_ReFire[(str state = \"Hold\")]";
@ -296,6 +300,9 @@ keywords
A_Light1 = "A_Light1";
A_Light2 = "A_Light2";
A_LightInverse = "A_LightInverse";
A_Overlay = "A_Overlay(int layer[, state start])";
A_OverlayFlags = "A_OverlayFlags(int layer, int flags, bool set)\nflags: PSPF flags.";
A_OverlayOffset = "A_OverlayOffset[(int layer = 0[, float x = 0.0f[, float y = 32.0f[, int flags = 0]]]])]\nflags: WOF flags.";
A_Recoil = "A_Recoil(float force)";
A_ZoomFactor = "A_ZoomFactor[(float zoom = 1.0[, int flags = 0])]\nflags: ZOOM flags.";
A_SetCrosshair = "A_SetCrosshair(int number)";
@ -304,8 +311,8 @@ keywords
A_Saw = "A_Saw[(str fullsound = \"weapons/sawfull\"[, str hitsound = \"weapons/sawhit\"[, int damage = 0[, str pufftype = \"BulletPuff\"[, int flags = 0[, float range = 65.0[, float spread_xy = 2.8125[, float spread_z = 0.0[, float lifesteal = 0.0[, int lifestealmax = 0[, str armorbonustype = \"ArmorBonus\"]]]]]]]]]])]";
A_CustomPunch = "A_CustomPunch(int damage[, bool norandom = false[, int flags = 0[, str pufftype = \"BulletPuff\"[, float range = 64.0[, float lifesteal = 0.0[, int lifestealmax = 0[, str armorbonustype = \"ArmorBonus\"[, str meleesound[, str misssound]]]]]]]]])";
A_FireBullets = "A_FireBullets(int spread_horz, int spread_vert, int numbullets, int damage[, str pufftype = \"\"[, int flags = FBF_USEAMMO[, float range = 0.0]]])";
A_FireCustomMissile = "A_FireCustomMissile(str missiletype[, int angle = 0[, bool useammo = false[, int spawnofs_horz = 0[, int spawnheight = 0[, int flags = 0[, angle pitch = 0]]]]]])";
A_RailAttack = "A_RailAttack(int damage[, int spawnofs_horz[, bool useammo[, str ringcolor[, str corecolor[, int flags[, int maxdiff[, str pufftype[, float spread_xy = 0.0[, float spread_z = 0.0[, float range = 8192.0[, int duration = 35[, float sparsity = 1.0[, float driftspeed = 1.0[, str spawnclass[, float spawnofs_z = 0.0[, int spiraloffset = 270]]]]]]]]]]]]]]]])";
A_FireCustomMissile = "A_FireCustomMissile(str missiletype[, int angle = 0[, bool useammo = false[, float spawnofs_horz = 0.0[, int spawnheight = 0[, int flags = 0[, angle pitch = 0]]]]]])";
A_RailAttack = "A_RailAttack(int damage[, int spawnofs_horz[, bool useammo[, str ringcolor[, str corecolor[, int flags[, int maxdiff[, str pufftype[, float spread_xy = 0.0[, float spread_z = 0.0[, float range = 8192.0[, int duration = 35[, float sparsity = 1.0[, float driftspeed = 1.0[, str spawnclass[, float spawnofs_z = 0.0[, int spiraloffset = 270[, int actorpiercelimit = 0]]]]]]]]]]]]]]]]])";
A_FireAssaultGun = "A_FireAssaultGun";
A_FireBFG = "A_FireBFG";
A_FireOldBFG = "A_FireOldBFG";
@ -368,7 +375,7 @@ keywords
A_BarrelDestroy = "A_BarrelDestroy";
//Miscellaneous functions not listed in the "Action functions" wiki article
A_Bang4Cloud = "A_Bang4Cloud";
A_Blast = "A_Blast[(int flags = 0[, int strength = 255[, int radius = 255[, float speed = 20.0[, str blasteffect = \"BlastEffect\"[, str blastsound = \"BlastRadius\"]]]]])]\nA_Blast[(int flags = 0[, int strength = 255[, float radius = 255.0[, float speed = 20.0[, str blasteffect = \"BlastEffect\"[, str blastsound = \"BlastRadius\"]]]]])]";
A_Blast = "A_Blast[(int flags = 0[, float strength = 255.0[, float radius = 255.0[, float speed = 20.0[, str blasteffect = \"BlastEffect\"[, str blastsound = \"BlastRadius\"]]]]])]";
A_BishopMissileWeave = "A_BishopMissileWeave";
A_DropWeaponPieces = "A_DropWeaponPieces(str actorclass1, str actorclass2, str actorclass3)";
A_Feathers = "A_Feathers";
@ -379,10 +386,21 @@ keywords
A_RocketInFlight = "A_RocketInFlight";
A_SetGravity = "A_SetGravity(float gravity)\nSets the amount of gravity for the calling actor.";
A_SetUserArray = "A_SetUserArray(str name, int index, int value)";
A_SetUserArrayFloat = "A_SetUserArrayFloat(str name, int index, float value)";
A_ShootGun = "A_ShootGun";
A_SPosAttackUseAtkSound = "A_SPosAttackUseAtkSound";
//Mathematical functions
abs = "abs(x)\nReturns the absolute value of x.";
exp = "exp(x)\nReturns the base-e exponential function of x, which is e raised to the power x.";
log = "log(x)\nReturns the natural logarithm of x - the opposite of exp.";
log10 = "log10(x)\nReturns the common (base-10) logarithm of x.";
ceil = "ceil(x)\nRounds the number upward to the next closest integer.";
floor = "floor(x)\nRounds the number downward to the next closest integer.";
sqrt = "sqrt(x)\nReturns the square root of x.";
min = "min(x1, ...)\nGets the smallest value of all values listed.\nCan take any amount of numbers, and can solve both ints and floats.";
max = "max(x1, ...)\nGets the largest value of all values listed.\nCan take any amount of numbers, and can solve both ints and floats.";
clamp = "clamp(src, min, max)\nReturns src within the range of min and max inclusively. All parameters can be ints or floats.";
//Trigonometry functions
sin = "sin(x)\nTrigonometry function, x must be in degrees.";
cos = "cos(x)\nTrigonometry function, x must be in degrees.";
tan = "tan(x)\nTrigonometry function, x must be in degrees.";
@ -392,15 +410,9 @@ keywords
sinh = "sinh(x)\nTrigonometry function, x must be in radians.";
cosh = "cosh(x)\nTrigonometry function, x must be in radians.";
tanh = "tanh(x)\nTrigonometry function, x must be in radians.";
exp = "exp(x)\nReturns the base-e exponential function of x, which is e raised to the power x.";
log = "log(x)\nReturns the natural logarithm of x - the opposite of exp.";
log10 = "log10(x)\nReturns the common (base-10) logarithm of x.";
ceil = "ceil(x)\nRounds the number upward to the next closest integer.";
floor = "floor(x)\nRounds the number downward to the next closest integer.";
sqrt = "sqrt(x)\nReturns the square root of x.";
min = "min(x1, ...)\nGets the smallest value of all values listed.\nCan take any amount of numbers, and can solve both ints and floats.";
max = "max(x1, ...)\nGets the largest value of all values listed.\nCan take any amount of numbers, and can solve both ints and floats.";
clamp = "clamp(src, min, max)\nReturns src within the range of min and max inclusively. All parameters can be ints or floats.";
atan2 = "atan2(y, x)\nTrigonometry function, Returns an angle in degrees.";
VectorAngle = "VectorAngle(x, y)\nTrigonometry function.";
GetAngle = "GetAngle(bool relative[, int ptr_target = AAPTR_TARGET])\nGets the angle in degrees (normalized to -180..180)";
//Randum number functions
random = "int random[identifier](min, max)\nReturns a random integer value between min and max.";
random2 = "int random2[identifier](mask)\nReturns a random integer value between -mask and +mask.";
@ -415,8 +427,15 @@ keywords
IsPointerEqual = "bool IsPointerEqual(int ptr1, int ptr2)";
CountInv = "int CountInv(str itemclassname[, int ptr_select = AAPTR_DEFAULT])";
GetDistance = "float GetDistance(bool checkz[, int ptr_select = AAPTR_TARGET])";
GetSpawnHealth = "int GetSpawnHealth()";
GetGibHealth = "int GetGibHealth()";
GetMissileDamage = "int GetMissileDamage(int mask, int add[, int pointer = AAPTR_DEFAULT])";
GetPlayerInput = "int GetPlayerInput(int numinput[, int ptr = AAPTR_DEFAULT])";
GetSpawnHealth = "int GetSpawnHealth()";
GetZAt = "float GetZAt([float x = 0.0[, float y = 0.0[, float angle = 0.0[, int flags = 0[, int pick_pointer = AAPTR_TARGET]]]]])";
GetGibHealth = "int GetGibHealth()";
GetCrouchFactor = "float GetCrouchFactor(int ptr = AAPTR_PLAYER1)";
GetCVar = "int GetCVar(str name)";
GetUserCVar = "int GetUserCVar(int playernum, str name)";
}
properties
@ -524,6 +543,10 @@ properties
TeleFogDestType;
Threshold;
DefThreshold;
VisibleAngleStart;
VisibleAngleEnd;
VisiblePitchStart;
VisiblePitchEnd;
//Collision and 'Physics'
Radius;
Height;
@ -566,6 +589,11 @@ properties
Decal;
StencilColor;
FloatBobPhase;
DistanceCheck;
SpriteAngle;
SpriteRotation;
VisibleAngles;
VisiblePitch;
//Obituaries
HitObituary;
Obituary;
@ -718,13 +746,30 @@ properties
constants
{
//rendering
FLATSPRITE;
ROLLSPRITE;
WALLSPRITE;
DONTFLIP;
ROLLCENTER;
SPRITEANGLE;
MASKROTATION;
ABSMASKANGLE;
ABSMASKPITCH;
//pointers
AAPTR_DEFAULT;
AAPTR_NULL;
AAPTR_TARGET;
AAPTR_MASTER;
AAPTR_TRACER;
AAPTR_PLAYER;
AAPTR_PLAYER1;
AAPTR_PLAYER2;
AAPTR_PLAYER3;
AAPTR_PLAYER4;
AAPTR_PLAYER5;
AAPTR_PLAYER6;
AAPTR_PLAYER7;
AAPTR_PLAYER8;
AAPTR_PLAYER_GETTARGET;
AAPTR_PLAYER_GETCONVERSATION;
//A_SpawnItemEx flags
@ -783,6 +828,9 @@ constants
FBF_EXPLICITANGLE;
FBF_NOPITCH;
FBF_NORANDOMPUFFZ;
FBF_PUFFTARGET;
FBF_PUFFMASTER;
FBF_PUFFTRACER;
//monster flags
PAF_NOSKULLATTACK;
PAF_AIMFACING;
@ -1074,6 +1122,9 @@ constants
CBAF_NOPITCH;
CBAF_NORANDOM;
CBAF_NORANDOMPUFFZ;
CBAF_PUFFTARGET;
CBAF_PUFFMASTER;
CBAF_PUFFTRACER;
CBF_NOLINES;
CBF_SETTARGET;
CBF_SETMASTER;
@ -1081,11 +1132,18 @@ constants
CBF_SETONPTR;
CBF_DROPOFF;
CBF_NOACTORS;
CBF_ABSOLUTEPOS;
CBF_ABSOLUTEANGLE;
CHF_DONTMOVE;
CHF_FASTCHASE;
CHF_NIGHTMAREFAST;
CHF_NOPLAYACTIVE;
CHF_RESURRECT;
CHF_NORANDOMTURN;
CHF_NODIRECTIONTURN;
CHF_NOPOSTATTACKTURN;
CHF_STOPIFBLOCKED;
CHF_DONTTURN;
CLOFF_AIM_VERT_NOOFFSET;
CLOFF_ALLOWNULL;
CLOFF_BEYONDTARGET;
@ -1133,6 +1191,7 @@ constants
DMSS_EXFILTER;
DMSS_EXSPECIES;
DMSS_EITHER;
DMSS_INFLICTORDMGTYPE;
FMDF_NOPITCH;
FMDF_NOANGLE;
FMDF_INTERPOLATE;
@ -1206,6 +1265,7 @@ constants
RTF_AFFECTSOURCE;
RTF_NOIMPACTDAMAGE;
RTF_NOTMISSILE;
RTF_THRUSTZ;
SF_NOPULLIN;
SF_NORANDOM;
SF_NOTURN;
@ -1220,6 +1280,7 @@ constants
SMF_PRECISE;
SPF_FORCECLAMP;
SPF_INTERPOLATE;
SPF_NOTIMEFREEZE;
TF_TELEFRAG;
TF_RANDOMDECIDE;
TF_FORCED;
@ -1308,4 +1369,39 @@ constants
QF_WAVE;
QF_MAX;
QF_FULLINTENSITY;
//GetZAt flags
GZF_ABSOLUTEPOS;
GZF_ABSOLUTEANG;
GZF_CEILING;
GZF_3DRESTRICT;
GZF_NOPORTALS;
GZF_NO3DFLOOR;
//A_WeaponOffset flags
WOF_KEEPX;
WOF_KEEPY;
WOF_ADD;
//A_OverlayFlags flags
PSPF_ADDWEAPON;
PSPF_ADDBOB;
PSPF_POWDOUBLE;
PSPF_CVARFAST;
PSPF_FLIP;
//A_BFGSpray flags
BFGF_MISSILEORIGIN;
BFGF_HURTSOURCE;
//A_RadiusDamageSelf flags
RDSF_BFGDAMAGE;
//GetAngle flags
GAF_RELATIVE;
GAF_SWITCH;
//A_CopySpriteFrame flags
CPSF_NOSPRITE;
CPSF_NOFRAME;
//A_SetVisibleRotation flags
VRF_NOANGLESTART;
VRF_NOANGLEEND;
VRF_NOPITCHSTART;
VRF_NOPITCHEND;
VRF_NOANGLE;
VRF_NOPITCH;
}

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 944 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 923 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 771 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -1,3 +1,4 @@
<<<<<<< HEAD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
@ -94,3 +95,112 @@ arg0
</p>
</div>
</body>
=======
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Game Configuration - Linedefs Settings</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="default.css" media="screen" title="Default" />
</head>
<body>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="keyword" value="Configurations">
<param name="keyword" value="Game Configurations">
<param name="keyword" value="Action">
<param name="keyword" value="Argument">
</object>
<div id="title">
<h1>Game Configuration - Action Argument Settings</h1>
</div>
<div id="contents">
<p> <b class="fat">title</b> (string)<br />
Sets the title of this argument.<br />
Argument title can be also set in <a href="gc_decoratekeys.html#argtitle">DECORATE</a>.<br />
<br />
<b class="fat"><a name="argtooltip" id="argtooltip"></a>tooltip</b> (string) - <span class="red">GZDB only</span><br />
Allows to specify a tooltip text displayed for a <a href="gc_thingsettings.html#argtooltip">Thing</a> or Linedef argument definition. Newline character ("\n") can be used to format the text.<br />
Argument tooltips can be also set in <a href="gc_decoratekeys.html#argtooltip">DECORATE</a>.<br />
<strong>Example:</strong> </p>
<pre>arg1
{
title = "Mirror Polyobj Number";
<span class="blue">tooltip = "Polyobject that will mirror\nthis one's movements.";</span>
}</pre>
<br />
<b class="fat"><a name="argtype" id="argtype"></a>type</b> (integer)<br />
Sets the type of this argument. This changes the behaviour of Argument inputs in <a href="w_linedefedit.html">Linedef</a> and <a href="w_thingedit.html">Thing Edit</a> windows.<br />
Argument type can be also set in <a href="gc_decoratekeys.html#argtype">DECORATE</a>.<br />
<strong>Supported values are:</strong><br />
<br />
<ul style="list-style-type:none">
<li>0 = Integer (default)</li>
<li>4 = Action special</li>
<li>5 = Sector effect</li>
<li>8 = Angle in degrees</li>
<li>10 = XXRRGGBB color</li>
<li>11 = Enum option</li>
<li>12 = Enum bits</li>
<li>13 = Sector tag</li>
<li>14 = Thing tag</li>
<li>15 = Linedef tag</li>
<li>22 = Byte angle (<span class="red">GZDB only</span>)</li>
<li>23 = Thing Radius (<span class="red">GZDB only</span>)</li>
<li>24 = Thing Height (<span class="red">GZDB only</span>)</li>
</ul>
<p><b class="fat">targetclasses</b> (string) - <span class="red">GZDB only</span><br />
When set, only things of given classes will be shown in the argument dropdown list. Used only when argument <strong>type</strong> is 14.<br />
The value can be either a thing class name of a comma-separated list of thing class names:<br />
<pre>
arg0
{
title = &quot;MapSpot Tag&quot;;
type = 14;
<span class="blue">targetclasses = &quot;MapSpot,MapSpotGravity&quot;;</span>
}
</pre>
<p><b class="fat">enum</b> (structure or string)<br />
Provides a list of predefined values to display for this argument. Used only when argument <strong>type</strong> is 11 or 12.<br />
The value can be either a name of a predefined enum:<br />
<pre>
arg0
{
title = &quot;Volume&quot;;
type = 11;
<span class="blue">enum = &quot;sound_volume&quot;;</span>
}
</pre>
or an explicit definition:<br />
<pre>
arg0
{
title = "Apply to";
type = 11;
<span class="blue">enum
{
0 = "Floor and Ceiling";
1 = "Ceiling";
2 = "Floor";
}</span>
}
</pre>
Enums can be also set in <a href="gc_decoratekeys.html#argenum">DECORATE</a>.<br />
<br />
<b class="fat">default</b> (integer) - <span class="red">GZDB only</span><br />
Sets the default value for a Thing or Linedef argument definition.<br />
Default value can be also set in <a href="gc_decoratekeys.html#argdefault">DECORATE</a>.<br />
<strong>Example:</strong>
</p>
<pre>9038
{
title = "ColorSetter";
arg0
{
title = "Red";
<span class="blue">default = 255;</span>
}
}</pre>
</p>
</div>
</body>
>>>>>>> dddb1bbf (Added, Game configurations: added "targetclasses" argument property. Can be used with argument type 14 (Thing Tag). When set, only things of given classes will be shown in the argument dropdown list in Edit Things window.)

View file

@ -78,66 +78,98 @@ skills
5 = "Nightmare!";
}
</pre>
<br />
<b class="fat">linetagindicatesectors</b> (boolean)<br />
When <b>true</b>, Doom Builder will highlight sectors associated with the same tag number when a line is highlighted. This is only really useful for Doom format maps, because Hexen format and UDMF format has no single tag on linedefs (in those formats, the arguments of the linedef's action can be tags, which also works to highlight sectors).<br />
Default value is <b>false</b>.<br />
<br />
<b class="fat">singlesidedflag</b> (integer or string)<br />
This lets Doom Builder know the <a href="gc_linedefflags.html">linedef flag</a> that indicates a line with only one side. Doom Builder will set this flag value on a linedef when it changes a line to become single sided and removes the flag from a linedef when it becomes double sided. Plugins can also use this information to perform operations on linedefs. For map formats that use numeric flags (Doom and Hexen) this must be an integer flag value. For map formats that use named flags (UDMF), this must be a string indicating the name of the flag.<br />
<br />
<b class="fat">doublesidedflag</b> (integer or string)<br />
This lets Doom Builder know the <a href="gc_linedefflags.html">linedef flag</a> that indicates a line with two sides. Doom Builder will set this flag value on a linedef when it changes a line to become double sided and removes the flag from a linedef when it becomes single sided. Plugins can also use this information to perform operations on linedefs. For map formats that use numeric flags (Doom and Hexen) this must be an integer flag value. For map formats that use named flags (UDMF), this must be a string indicating the name of the flag.<br />
<br />
<b class="fat">impassableflag</b> (integer or string)<br />
This lets Doom Builder know the <a href="gc_linedefflags.html">linedef flag</a> that indicates a line which blocks players and monsters. Doom Builder uses this to give the line a special color and plugins can use this information to perform operations related to blocking sound lines. For map formats that use numeric flags (Doom and Hexen) this must be an integer specifying the flag value of the Impassable flag. For map formats that use named flags (UDMF), this must be a string indicating the name of the Impassable flag.<br />
<br />
<b class="fat">defaultwalltexture</b> (string) - <span class="red">GZDB only</span>.<br />
Name of a texture to use on sidedefs when creating a new sector.<br />
<b>"STARTAN"</b>.<br />
<br />
<b class="fat">defaultfloortexture</b> (string) - <span class="red">GZDB only</span>.<br />
Name of a flat to use on the floor when creating a new sector.<br />
Default value is <b>"FLOOR0_1"</b>.<br />
<br />
<b class="fat">defaultceilingtexture</b> (string) - <span class="red">GZDB only</span>.<br />
Name of a flat to use on the ceiling when creating a new sector.<br />
Default value is <b>"CEIL1_1"</b>.<br />
<br />
<b class="fat">makedoortrack</b> (string)<br />
Name of a texture to use on the walls when making a door.<br />
Default value is <b>"-"</b> (no texture).<br />
<br />
<b class="fat">makedoordoor</b> (string) - <span class="red">GZDB only</span>.<br />
Name of a texture to use as the door texture when making a door.<br />
Default value is <b>"-"</b> (no texture).<br />
<br />
<b class="fat">makedoorceil</b> (string) - <span class="red">GZDB only</span>.<br />
Name of a texture to use as the door's ceiling texture when making a door.<br />
Default value is <b>"-"</b> (no texture).<br />
<br />
<b class="fat">makedooraction</b> (integer)<br />
Linedef action number to put on the lines when making a door.<br />
<br />
<b class="fat">makedoorarg#</b> (0 .. 4) (integer)<br />
Arguments for the linedef action number to put on the lines when making a door.<br />
<br />
<b class="fat">doomlightlevels</b> (boolean)<br />
Set this to <b>false</b> to use linear lighting in Doom Builder. Normally Doom Builder uses a simulation of Doom's light levels.
<br />Default value is <b>true</b>.<br />
<br />
<b class="fat">start3dmode</b> (integer)<br />
Thing type number that Doom Builder will use to keep your Visual Mode camera position stored in the map. Doom Builder will place a single thing of this type in your map and move it along as you move in Visual Mode.<br />
<br />
<b class="fat">skyflatname</b> (string)<br />
Name of the flat that is interpreted as sky (meaning there is no ceiling). Doom Builder and plugins can use this information for various purposes.
<br />Default value is <b>"F_SKY1"</b>.<br />
<br />
<b class="fat">defaultskytextures</b> (structure) - <span class="red">GZDB only</span>.<br />
Defines the relationship between map names and sky texture names used by vanilla maps.<br />
<br />
<strong>Example:</strong>
<pre>
<br />
<b class="fat">damagetypes</b> (string) - <span class="red">GZDB only</span>.<br />
Space-separated list of built-in damage types. This list is combined with DamageTypes parsed from DECORATE.<br />
<br />
<strong>Example:</strong>
<pre>
damagetypes = "None BFGSplash Drowning Slime";
</pre>
<br />
<b class="fat">linetagindicatesectors</b> (boolean)<br />
When <b>true</b>, Doom Builder will highlight sectors associated with the same tag number when a line is highlighted. This is only really useful for Doom format maps, because Hexen format and UDMF format has no single tag on linedefs (in those formats, the arguments of the linedef's action can be tags, which also works to highlight sectors).<br />
Default value is <b>false</b>.<br />
<br />
<b class="fat">singlesidedflag</b> (integer or string)<br />
This lets Doom Builder know the <a href="gc_linedefflags.html">linedef flag</a> that indicates a line with only one side. Doom Builder will set this flag value on a linedef when it changes a line to become single sided and removes the flag from a linedef when it becomes double sided. Plugins can also use this information to perform operations on linedefs. For map formats that use numeric flags (Doom and Hexen) this must be an integer flag value. For map formats that use named flags (UDMF), this must be a string indicating the name of the flag.<br />
<br />
<b class="fat">doublesidedflag</b> (integer or string)<br />
This lets Doom Builder know the <a href="gc_linedefflags.html">linedef flag</a> that indicates a line with two sides. Doom Builder will set this flag value on a linedef when it changes a line to become double sided and removes the flag from a linedef when it becomes single sided. Plugins can also use this information to perform operations on linedefs. For map formats that use numeric flags (Doom and Hexen) this must be an integer flag value. For map formats that use named flags (UDMF), this must be a string indicating the name of the flag.<br />
<br />
<b class="fat">impassableflag</b> (integer or string)<br />
This lets Doom Builder know the <a href="gc_linedefflags.html">linedef flag</a> that indicates a line which blocks players and monsters. Doom Builder uses this to give the line a special color and plugins can use this information to perform operations related to blocking sound lines. For map formats that use numeric flags (Doom and Hexen) this must be an integer specifying the flag value of the Impassable flag. For map formats that use named flags (UDMF), this must be a string indicating the name of the Impassable flag.<br />
<br />
<b class="fat">leftboundary</b> (integer)<br />
Left map boundary.<br />
Default value is <b>-32768</b>.<br />
<br />
<b class="fat">rightboundary</b> (integer)<br />
Right map boundary.<br />
Default value is <b>32767</b>.<br />
<br />
<b class="fat">topboundary</b> (integer)<br />
Top map boundary.<br />
Default value is <b>32767</b>.<br />
<br />
<b class="fat">bottomboundary</b> (integer)<br />
Bottom map boundary.<br />
Default value is <b>-32768</b>.<br />
<br />
<b class="fat">safeboundary</b> (integer) - <span class="red">GZDB only</span>.<br />
Maximum map bounding box size considered to be safe by "Check map size" <a href="e_mapanalysis.html">error check</a>. Setting this to <b>0</b> disables the check.<br />
Default value is <b>32767</b>.<br />
<br />
<b class="fat">defaultwalltexture</b> (string) - <span class="red">GZDB only</span>.<br />
Name of a texture to use on sidedefs when creating a new sector.<br />
Default value is <b>"STARTAN"</b>.<br />
<br />
<b class="fat">defaultfloortexture</b> (string) - <span class="red">GZDB only</span>.<br />
Name of a flat to use on the floor when creating a new sector.<br />
Default value is <b>"FLOOR0_1"</b>.<br />
<br />
<b class="fat">defaultceilingtexture</b> (string) - <span class="red">GZDB only</span>.<br />
Name of a flat to use on the ceiling when creating a new sector.<br />
Default value is <b>"CEIL1_1"</b>.<br />
<br />
<b class="fat">makedoortrack</b> (string)<br />
Name of a texture to use on the walls when making a door.<br />
Default value is <b>"-"</b> (no texture).<br />
<br />
<b class="fat">makedoordoor</b> (string) - <span class="red">GZDB only</span>.<br />
Name of a texture to use as the door texture when making a door.<br />
Default value is <b>"-"</b> (no texture).<br />
<br />
<b class="fat">makedoorceil</b> (string) - <span class="red">GZDB only</span>.<br />
Name of a texture to use as the door's ceiling texture when making a door.<br />
Default value is <b>"-"</b> (no texture).<br />
<br />
<b class="fat">makedooraction</b> (integer)<br />
Linedef action number to put on the lines when making a door.<br />
<br />
<b class="fat">makedoorarg#</b> (0 .. 4) (integer)<br />
Arguments for the linedef action number to put on the lines when making a door.<br />
<br />
<b class="fat">doomlightlevels</b> (boolean)<br />
Set this to <b>false</b> to use linear lighting in Doom Builder. Normally Doom Builder uses a simulation of Doom's light levels.<br />
Default value is <b>true</b>.<br />
<br />
<b class="fat">doomthingrotationangles</b> (boolean) - <span class="red">GZDB only</span>.<br />
When set to <b>true</b>, editor actions related to changing thing angle will snap the resulting angle to 45 degree increments.<br />
Default value is <b>false</b>.<br />
<br />
<b class="fat">start3dmode</b> (integer)<br />
Thing type number that Doom Builder will use to keep your Visual Mode camera position stored in the map. Doom Builder will place a single thing of this type in your map and move it along as you move in Visual Mode.<br />
<br />
<b class="fat">skyflatname</b> (string)<br />
Name of the flat that is interpreted as sky (meaning there is no ceiling). Doom Builder and plugins can use this information for various purposes. <br />
Default value is <b>"F_SKY1"</b>.<br />
<br />
<b class="fat">defaultskytextures</b> (structure) - <span class="red">GZDB only</span>.<br />
Defines the relationship between map names and sky texture names used by vanilla maps.<br />
<br />
<strong>Example:</strong>
<pre>
defaultskytextures
{
SKY1 = "MAP01,MAP02,MAP03,MAP04,MAP05";
@ -145,10 +177,15 @@ defaultskytextures
SKY3 = "MAP21,MAP22,MAP23,MAP24,MAP25";
}
</pre>
<br />
<b class="fat">longtexturenames</b> (boolean) - <span class="red">GZDB only</span>.<br />
Enables support for long (> 8 chars) texture names. This is used by GZDoom Builder to limit the input fields in the user interface and to check the validity of texture names in resources. This setting should only be enabled for UDMF game configurations. Enabling this setting will make maps incompatible with Doom Builder 2 and can lead to problems in Slade 3 This does NOT determine the actual limitation on the texture names in the map file format.<br />Default value is <b>false</b>.<br />
<br />
<br />
<b class="fat">longtexturenames</b> (boolean) - <span class="red">GZDB only</span>.<br />
Enables support for long (> 8 chars) texture names. This is used by GZDoom Builder to limit the input fields in the user interface and to check the validity of texture names in resources. This setting should only be enabled for UDMF game configurations. Enabling this setting will make maps incompatible with Doom Builder 2 and can lead to problems in Slade 3 This does NOT determine the actual limitation on the texture names in the map file format.<br />
Default value is <b>false</b>.<br />
<br />
<b class="fat">sidedefcompressionignoresaction</b> (boolean) - <span class="red">GZDB only</span>.<br />
When set to true, sidedefs will be compressed regardless of linedef action or tag(s) (DB2 behaviour, can potentially cause problems when target source port doesn't decompress sidedefs).<br />
When set to false, sidedefs, which belong to a line with an action or non-zero tag(s), will be skipped when compressing sidedefs.<br />
Default value is <b>false</b>.<br />
</p>
</div>
</body>

View file

@ -27,6 +27,9 @@
<p><img src="synch_cam3.jpg" alt="" width="740" height="515" /></p>
<p>If you leave Visual mode now, the map will be centered at Visual camera's location:</p>
<p><img src="synch_cam4.jpg" alt="" width="736" height="512" /></p>
<p>If you don't like this behaviour, you can disable it in the <a href="../../../w_preferences.html">Preferences window</a>.</p>
<p>If you don't like this behaviour, disable "<b>Synchronize camera position between 2D and 3D modes</b>" <a href="../../../w_preferences.html">Preferences</a> option.</p>
<h2>Additional keys:</h2>
<p>Holding <b>Shift</b> while switching to/from Visual mode will also synchronize selected map elements.<br />
Holding <b>Ctrl</b> while switching to/from Visual mode will temporarily disable camera synchronization (works only when "<b>Synchronize camera position between 2D and 3D modes</b>" <a href="../../../w_preferences.html">Preferences</a> option is enabled).</p>
</div>
</body>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

After

Width:  |  Height:  |  Size: 313 KiB

View file

@ -25,7 +25,9 @@ This mode lets you draw various curve shapes. <br>
<b>Default key:</b> Ctrl-Alt-D.<br>
<b>Additional actions:</b> Increase Subdivision Level, Decrease Subdivision Level.<br><br>
You can activate this mode by pressing <strong>Ctrl-Alt-D</strong> (default key).<br>
You can use the side panel or &quot;<strong>Increase Subdivision Level</strong>&quot; and &quot;<strong>Decrease Subdivision Level</strong>&quot; actions to control how detailed the curve is:
Press "<strong>Continuous drawing</strong>" button on the mode panel to disable automatic switching to previous editing mode after finishing drawing.<br>
Press "<strong>Auto-finish drawing</strong>" button on the mode panel to automatically finish drawing when currently drawn lines and already existing level geometry form a closed shape.<br>
You can use the mode panel or &quot;<strong>Increase Subdivision Level</strong>&quot; and &quot;<strong>Decrease Subdivision Level</strong>&quot; actions to control how detailed the curve is:
<br>
<img src="draw_curve.jpg" /></div>
</body>

View file

@ -21,14 +21,15 @@ This mode lets you draw various ellipsoid shapes.<br>
<b>Menu path:</b> Mode -&gt; Draw Ellipse.<br>
<b>Action category:</b> Drawing.<br>
<b>Default key:</b> Ctrl-Alt-D.<br>
<b>Additional actions:</b> Increase Subdivision Level, Decrease Subdivision Level, Increase Corners Bevel, Decrease Corners Bevel.<br>
<b>Additional actions:</b> Increase Subdivision Level, Decrease Subdivision Level, Increase Corners Bevel, Decrease Corners Bevel, Rotate Clockwise, Rotate Counterclockwise.<br>
<br>
You can activate this mode by pressing <strong>Alt-Shift-D</strong> (default key).<br>
You can use the side panel or &quot;<strong>Increase Subdivision Level</strong>&quot; and &quot;<strong>Decrease Subdivision Level</strong>&quot; actions to control the number of sides ellipse has:
<br>
Press "<strong>Continuous drawing</strong>" button on the mode panel to disable automatic switching to previous editing mode after finishing drawing.<br>
You can use the mode panel or &quot;<strong>Rotate Clockwise</strong>&quot; and &quot;<strong>Rotate Counterclockwise</strong>&quot; actions to rotate the shape.<br>
You can use the mode panel or &quot;<strong>Increase Subdivision Level</strong>&quot; and &quot;<strong>Decrease Subdivision Level</strong>&quot; actions to control the number of sides ellipse has.<br>
<img src="draw_ellipse1.jpg" />
<br>
You can use side panel or &quot;<strong>Increase Corners Bevel</strong>&quot; and &quot;<strong>Decrease Corners Bevel</strong>&quot; actions to bevel the ellipse: <br>
You can use mode panel or &quot;<strong>Increase Corners Bevel</strong>&quot; and &quot;<strong>Decrease Corners Bevel</strong>&quot; actions to bevel the ellipse: <br>
<img src="draw_ellipse2.jpg" />
<br>
When using &quot;<strong>Increase/Decrease Corners Bevel</strong>&quot; actions, the bevel increment is based on the current grid size.</p>

View file

@ -24,8 +24,9 @@
<b>Default key:</b> none.<br />
<b>Additional actions:</b> Increase Subdivision Level, Decrease Subdivision Level, Increase Corners Bevel, Decrease Corners Bevel.</p>
<p>You can use the side panel or &quot;<strong>Increase/Decrease Subdivision Level</strong>&quot; and &quot;<strong>Increase/Decrease Corners Bevel</strong>&quot; actions to change the number of horizontal and vertical slices.<br />
Check "<strong>Lock slices to grid</strong>" to match slices number to current grid size.<br />
Check &quot;<strong>Triangulate</strong>&quot; if you want to create triangles instead of quads:</p>
Change "<strong>Lock slices to grid</strong>" setting to match slices number to current grid size horizontally, vertically or in both directions.<br />
Check &quot;<strong>Triangulate</strong>&quot; if you want to create triangles instead of quads.<br />
Check "<strong>Continuous drawing</strong>" to disable automatic switching to previous editing mode after finishing drawing.</p>
<p><img src="draw_grid_tri.jpg" alt="" /></p>
</div>
</body>

View file

@ -21,9 +21,11 @@ This mode lets you draw various rectangle shapes.<br>
<b>Menu path:</b> Mode -&gt; Draw Rectangle.<br />
<b>Action category:</b> Drawing.<br>
<b>Default key:</b> Ctrl-Shift-D.<br>
<b>Additional actions:</b> Increase Subdivision Level, Decrease Subdivision Level, Increase Corners Bevel, Decrease Corners Bevel.<br><br>
<b>Additional actions:</b> Increase Subdivision Level, Decrease Subdivision Level, Increase Corners Bevel, Decrease Corners Bevel.<br>
<br>
You can activate this mode by pressing <strong>Ctrl-Shift-D</strong> (default key).<br>
You can use the side panel or &quot;<strong>Increase/Decrease Subdivision Level</strong>&quot; and &quot;<strong>Increase/Decrease Corners Bevel</strong>&quot; actions to change corner bevel amount and detail level:
Press "<strong>Continuous drawing</strong>" button on the mode panel to disable automatic switching to previous editing mode after finishing drawing.<br>
You can use the mode panel or &quot;<strong>Increase/Decrease Subdivision Level</strong>&quot; and &quot;<strong>Increase/Decrease Corners Bevel</strong>&quot; actions to change corner bevel amount and detail level:
<br>
<img src="draw_rectangle1.jpg" />
<br>

View file

@ -23,7 +23,8 @@
<br>
<b>Action category:</b> Modes.<br>
<b>Default key:</b> none.<br><br>
This mode shows the sound environments in ZDoom maps (both Hexen format and UDMF). The gray areas do not belong to a sound environment.<br><br>
This mode shows the sound environments in ZDoom UDMF maps. The gray areas do not belong to a sound environment.<br>
<br>
The mode also supplies a docker that supplies information about the sound environments. It will display the sound environments, the SoundEnvironment things belonging to them and also the lines that are limit the sound environments. Clicking on the sound environments, things or lines in the list will center the map view on those objects.
<br><br>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -19,16 +19,16 @@
<div id="contents">
<img src="menu_renderingtoolbar.jpg" />
<p>The Rendering toolbar allows you to toggle several GZDoom Builder's features:</p>
<p>The <strong>Rendering toolbar</strong> allows you to toggle several enhanced rendering features:</p>
<ol>
<li>Toggles models, dynamic lights and fog rendering in Visual mode.</li>
<li>Toggles between available dynamic lights rendering modes in Visual mode.</li>
<li>Toggles between available model rendering modes.</li>
<li>Toggles fog rendering in Visual mode.</li>
<li>Allows to select dynamic lights rendering mode used in <a href="../../../e_visual.html">Visual mode</a>.</li>
<li>Allows to select model rendering mode.</li>
<li>Toggles fog rendering in <a href="../../../e_visual.html">Visual mode</a>.</li>
<li>Toggles sky rendering in <a href="../../../e_visual.html">Visual mode</a>.</li>
<li>Toggles <a href="../all_modes/event_lines.html">Event lines</a>.</li>
<li>Toggles <a href="../visual_mode/visual_verts.html">Visual vertices</a> in Visual mode (UDMF only).</li>
<li>Toggles <a href="../visual_mode/visual_verts.html">Visual vertices</a> in <a href="../../../e_visual.html">Visual mode</a> (UDMF only).</li>
</ol>
<p>Most of these settings can also be toggled using actions from &quot;<strong>Rendering</strong>&quot; category.<br />
You can toggle currently enabled rendering effects using &quot;<strong>Toggle GZDoom effects</strong>&quot; action.</p>
<p>Most of these settings can also be toggled using actions found in &quot;<strong>Rendering</strong>&quot; category or appropriate <strong>View menu</strong> items.<br />
You can toggle rendering effects using &quot;<strong>Toggle Enhanced Effects</strong>&quot; action.</p>
</div>
</body>

View file

@ -22,7 +22,11 @@
</div>
<div id="contents">
<p>GZDoom Builder will automatically load data from the following lumps if they are present in the map's resources.</p>
<p>GZDoom Builder will automatically load data from the following lumps if they are present in the map's resources:</p>
<h2>DECORATE:</h2>
Actor definitions are loaded and used to poulate Things list. Extra parameters can be assigned using <a href="../gc_decoratekeys.html">special comments</a>.<br />
DamageTypes are loaded and used in the "Damage Type" drop-down of the Edit Sector window (UDMF only).
<a name="textures" id="textures"></a><h2>TEXTURES:</h2>
You can use "<strong>//$GZDB_SKIP</strong>" special comment to abort parsing of the current file. Useful if you don't want textures from certain files or parts of files to show up in the <a href="w_imagesbrowser.html">Image Browser</a> or want to increase resource loading speed.<br /><br />
GZDoom Builder adds support for the following TEXTURES parameters:
@ -53,6 +57,15 @@
<h2>SNDSEQ:</h2>
Sound Sequence and Sound Sequence Group definitions are loaded and can be selected in the "Sound sequence" drop-down of the Edit Sector window (UDMF only).
<h2>TERRAIN:</h2>
Terrain names are loaded and used in the floor and ceiling "Terrain" drop-downs of the Edit Sector window (UDMF only).
<h2>X11R6RGB:</h2>
Colors are loaded and used by other text parsers where appropriate.
<h2>CVARINFO:</h2>
CVARs are loaded. Currently the editor uses them only for "DistanceCheck" DECORATE property support.
<a name="modeldef" id="modeldef"></a>
<h2>MODELDEF:</h2>

View file

@ -133,15 +133,19 @@ namespace CodeImp.DoomBuilder.Actions
int button = key & ~((int)Keys.Control | (int)Keys.Shift | (int)Keys.Alt);
// When the button is a control key, then remove the control itsself
if((button == (int)Keys.ControlKey) ||
(button == (int)Keys.ShiftKey))
if((button == (int)Keys.ControlKey) || (button == (int)Keys.ShiftKey) || (button == (int)Keys.Alt))
{
ctrl = 0;
key = key & ~((int)Keys.Control | (int)Keys.Shift | (int)Keys.Alt);
}
// Determine control prefix
if(ctrl != 0) ctrlprefix = conv.ConvertToString(key);
//mxd. Determine control prefix
if(ctrl != 0)
{
if((key & (int)Keys.Control) != 0) ctrlprefix += "Ctrl+";
if((key & (int)Keys.Alt) != 0) ctrlprefix += "Alt+";
if((key & (int)Keys.Shift) != 0) ctrlprefix += "Shift+";
}
// Check if button is special
switch(button)

View file

@ -172,7 +172,6 @@ namespace CodeImp.DoomBuilder.Actions
// Done with the resource
actionsreader.Dispose();
actionsdata.Dispose();
break; //mxd. Usually we have a single "Actions.cfg", right?
}
}

View file

@ -63,12 +63,11 @@ namespace CodeImp.DoomBuilder.Actions
List<string> lines = new List<string>(2);
// Get a stream from the resource
using(Stream data = asm.GetManifestResourceStream(rn))
Stream data = asm.GetManifestResourceStream(rn);
if(data == null) return;
using(StreamReader reader = new StreamReader(data, Encoding.ASCII))
{
using(StreamReader reader = new StreamReader(data, Encoding.ASCII))
{
while(!reader.EndOfStream) lines.Add(reader.ReadLine());
}
while(!reader.EndOfStream) lines.Add(reader.ReadLine());
}
Dictionary<string, List<string>> group = new Dictionary<string, List<string>>(StringComparer.Ordinal);
@ -119,7 +118,7 @@ namespace CodeImp.DoomBuilder.Actions
//add the last class
hints.Add(asmname + classname, ProcessHints(group));
break;
return;
}
}
}

View file

@ -73,7 +73,7 @@
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<DefineConstants>TRACE</DefineConstants>
<DefineConstants>TRACE;PROFILE</DefineConstants>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
@ -550,11 +550,13 @@
<Compile Include="Rendering\WorldVertex.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="JetBrains.Profiler.Core.Api, Version=1.3.1661.20096, Culture=neutral, PublicKeyToken=1010a0d8d6380325" Condition=" '$(Configuration)|$(Platform)' == 'Debug + Profiler|x86' Or '$(Configuration)|$(Platform)' == 'Release + Profiler|x86' " />
<Reference Include="ScintillaNET.3.5, Version=3.5.6.0, Culture=neutral, processorArchitecture=x86">
<Reference Include="JetBrains.Profiler.Core.Api, Version=1.3.1661.20096, Culture=neutral, PublicKeyToken=1010a0d8d6380325" Condition=" '$(Configuration)|$(Platform)' == 'Debug + Profiler|x86' Or '$(Configuration)|$(Platform)' == 'Release + Profiler|x86' ">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="ScintillaNET.3.5, Version=3.5.8.0, Culture=neutral, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="SharpCompress.3.5, Version=0.11.2.0, Culture=neutral, processorArchitecture=x86">
<Reference Include="SharpCompress.3.5, Version=0.11.5.0, Culture=neutral, processorArchitecture=x86">
<Private>False</Private>
</Reference>
<Reference Include="SlimDX, Version=2.0.13.43, Culture=neutral, PublicKeyToken=b1b0c32fd1ffe4f9, processorArchitecture=x86" />
@ -712,7 +714,7 @@
</EmbeddedResource>
<EmbeddedResource Include="Resources\Actions.cfg" />
<EmbeddedResource Include="Resources\display2d.fx" />
<EmbeddedResource Include="Resources\Thing2D.png" />
<EmbeddedResource Include="Resources\ThingTexture2D.png" />
<EmbeddedResource Include="Resources\things2d.fx" />
<EmbeddedResource Include="Resources\world3d.fx" />
</ItemGroup>
@ -758,6 +760,9 @@
<Compile Include="Controls\ArgumentsControl.Designer.cs">
<DependentUpon>ArgumentsControl.cs</DependentUpon>
</Compile>
<Compile Include="Controls\BufferedTreeView.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\ButtonsNumericTextboxDesigner.cs" />
<Compile Include="Controls\CollapsibleSplitContainer.cs">
<SubType>Component</SubType>
@ -838,6 +843,9 @@
<Compile Include="Controls\ToolStripNumericUpDown.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\TransparentListView.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\TransparentPanel.cs">
<SubType>Component</SubType>
</Compile>
@ -917,6 +925,8 @@
<Compile Include="GZBuilder\Rendering\SizelessVisualThingCage.cs" />
<Compile Include="GZBuilder\Rendering\ThingBoundingBox.cs" />
<Compile Include="GZBuilder\Data\ThingCopyData.cs" />
<Compile Include="Map\MergeGeometryMode.cs" />
<Compile Include="Map\SectorBuilder.cs" />
<Compile Include="GZBuilder\Rendering\VisualVertexHandle.cs" />
<Compile Include="GZBuilder\Geometry\Line3D.cs" />
<Compile Include="GZBuilder\GZDoom\DecorateParserSE.cs" />
@ -950,6 +960,7 @@
<Compile Include="Map\MapElementCollection.cs" />
<Compile Include="Map\SplitLineBehavior.cs" />
<Compile Include="Rendering\CommentType.cs" />
<Compile Include="Rendering\CustomTextLabel.cs" />
<Compile Include="Rendering\SurfaceBufferSet.cs" />
<Compile Include="Rendering\SurfaceEntry.cs" />
<Compile Include="Rendering\SurfaceEntryCollection.cs" />
@ -1140,10 +1151,16 @@
<None Include="Resources\About.png" />
<None Include="Resources\Configuration.png" />
<EmbeddedResource Include="Resources\Black.png" />
<None Include="Resources\Angle1.png" />
<None Include="Resources\Angle2.png" />
<None Include="Resources\Angle3.png" />
<None Include="Resources\Angle4.png" />
<None Include="Resources\Angle5.png" />
<None Include="Resources\Angle6.png" />
<None Include="Resources\Angle7.png" />
<Content Include="Resources\DB2.ico" />
<None Include="Resources\GZDB2.ico" />
<None Include="Resources\fog.png" />
<None Include="Resources\fx.png" />
<None Include="Resources\GZDB_Logo_small.png" />
<None Include="Resources\InfoLine.png" />
<None Include="Resources\Keyboard.png" />
@ -1173,10 +1190,14 @@
<None Include="Resources\MixedThings.png" />
<None Include="Resources\LinedefColorPresets.png" />
<EmbeddedResource Include="Resources\MissingSky3D.png" />
<None Include="Resources\MergeGeo.png" />
<None Include="Resources\MergeGeoClassic.png" />
<None Include="Resources\MergeGeoRemoveLines.png" />
<Content Include="Resources\Model.png" />
<None Include="Resources\ModelDisabled.png" />
<None Include="Resources\ModelFiltered.png" />
<Content Include="Resources\Model_selected.png" />
<None Include="Resources\SplitSectors.png" />
<None Include="Resources\ScriptProperty.png" />
<None Include="Resources\TextWhitespace.png" />
<None Include="Resources\TextIndent.png" />
@ -1368,9 +1389,7 @@
<SubType>Designer</SubType>
<DependentUpon>ThingsFiltersForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Resources\Font.png" />
<EmbeddedResource Include="Resources\White.png" />
<EmbeddedResource Include="Resources\Font.cfg" />
<EmbeddedResource Include="Windows\UpdateForm.resx">
<DependentUpon>UpdateForm.cs</DependentUpon>
</EmbeddedResource>

View file

@ -100,7 +100,7 @@ namespace CodeImp.DoomBuilder.Compilers
if(!isdisposed)
{
Exception deleteerror;
float starttime = Clock.CurrentTime;
long starttime = Clock.CurrentTime;
do
{

View file

@ -16,6 +16,7 @@
#region ================== Namespaces
using System;
using System.Collections.Generic;
using CodeImp.DoomBuilder.Data;
@ -27,22 +28,22 @@ namespace CodeImp.DoomBuilder.Config
{
#region ================== Constants
public const string NAME = "All";
private const string NAME = "All";
#endregion
#region ================== Variables
// Matching textures and flats
private List<ImageData> textures;
private List<ImageData> flats;
private Dictionary<string, ImageData> textures;
private Dictionary<string, ImageData> flats;
#endregion
#region ================== Properties
public ICollection<ImageData> Textures { get { return textures; } }
public ICollection<ImageData> Flats { get { return flats; } }
public ICollection<ImageData> Textures { get { return textures.Values; } }
public ICollection<ImageData> Flats { get { return flats.Values; } }
#endregion
@ -52,8 +53,8 @@ namespace CodeImp.DoomBuilder.Config
public AllTextureSet()
{
this.name = NAME;
this.textures = new List<ImageData>();
this.flats = new List<ImageData>();
this.textures = new Dictionary<string, ImageData>(StringComparer.Ordinal);
this.flats = new Dictionary<string, ImageData>(StringComparer.Ordinal);
}
#endregion
@ -62,12 +63,15 @@ namespace CodeImp.DoomBuilder.Config
internal void AddTexture(ImageData image)
{
textures.Add(image);
//mxd. Use short name when adding a texture with "classic" name to override same-named textures
// with textures loaded from directory/pk3 containters
textures[image.DisplayName.Length > 8 ? image.Name : image.ShortName] = image;
}
internal void AddFlat(ImageData image)
{
flats.Add(image);
//mxd. Same with flats
flats[image.DisplayName.Length > 8 ? image.Name : image.ShortName] = image;
}
#endregion

View file

@ -16,6 +16,7 @@
#region ================== Namespaces
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
@ -40,6 +41,7 @@ namespace CodeImp.DoomBuilder.Config
private readonly int type;
private EnumList enumlist;
private readonly object defaultvalue; //mxd
private readonly HashSet<string> targetclasses; //mxd
#endregion
@ -49,6 +51,7 @@ namespace CodeImp.DoomBuilder.Config
public string ToolTip { get { return tooltip; } } //mxd
public bool Used { get { return used; } }
public int Type { get { return type; } }
public HashSet<string> TargetClasses { get { return targetclasses; } } //mxd
public EnumList Enum { get { return enumlist; } internal set { enumlist = value; } }
public object DefaultValue { get { return defaultvalue; } } //mxd
@ -67,6 +70,18 @@ namespace CodeImp.DoomBuilder.Config
this.type = cfg.ReadSetting(argspath + ".arg" + istr + ".type", 0);
this.defaultvalue = cfg.ReadSetting(argspath + ".arg" + istr + ".default", 0); //mxd
//mxd. Check for TargetClass?
this.targetclasses = new HashSet<string>(StringComparer.InvariantCultureIgnoreCase);
if(this.type == (int)UniversalType.ThingTag)
{
string s = cfg.ReadSetting(argspath + ".arg" + istr + ".targetclasses", string.Empty);
if(!string.IsNullOrEmpty(s))
{
foreach(string tclass in s.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries))
targetclasses.Add(tclass.Trim());
}
}
// Determine enum type
IDictionary argdic = cfg.ReadSetting(argspath + ".arg" + istr, new Hashtable());
if(argdic.Contains("enum"))
@ -75,7 +90,7 @@ namespace CodeImp.DoomBuilder.Config
if(argdic["enum"] is IDictionary)
{
// Create anonymous enum
this.enumlist = new EnumList(argdic["enum"] as IDictionary);
this.enumlist = new EnumList((IDictionary)argdic["enum"]);
}
else
{

View file

@ -23,7 +23,6 @@ using System.Globalization;
using CodeImp.DoomBuilder.IO;
using CodeImp.DoomBuilder.Map;
using CodeImp.DoomBuilder.Editing;
using CodeImp.DoomBuilder.GZBuilder.Data;
using CodeImp.DoomBuilder.Data;
@ -86,9 +85,12 @@ namespace CodeImp.DoomBuilder.Config
private readonly int rightboundary;
private readonly int topboundary;
private readonly int bottomboundary;
private readonly int safeboundary; //mxd
private readonly bool doomlightlevels;
private readonly bool doomthingrotationangles; //mxd
private readonly string actionspecialhelp; //mxd
private readonly string thingclasshelp; //mxd
private readonly bool sidedefcompressionignoresaction; //mxd
// Skills
private readonly List<SkillInfo> skills;
@ -212,9 +214,12 @@ namespace CodeImp.DoomBuilder.Config
public int RightBoundary { get { return rightboundary; } }
public int TopBoundary { get { return topboundary; } }
public int BottomBoundary { get { return bottomboundary; } }
public int SafeBoundary { get { return safeboundary; } } //mxd
public bool DoomLightLevels { get { return doomlightlevels; } }
public bool DoomThingRotationAngles { get { return doomthingrotationangles; } } //mxd. When set to true, thing rotation angles will be clamped to the nearest 45 deg increment
public string ActionSpecialHelp { get { return actionspecialhelp; } } //mxd
public string ThingClassHelp { get { return thingclasshelp; } } //mxd
internal bool SidedefCompressionIgnoresAction { get { return sidedefcompressionignoresaction; } } //mxd
// Skills
public List<SkillInfo> Skills { get { return skills; } }
@ -369,9 +374,12 @@ namespace CodeImp.DoomBuilder.Config
rightboundary = cfg.ReadSetting("rightboundary", 32767);
topboundary = cfg.ReadSetting("topboundary", 32767);
bottomboundary = cfg.ReadSetting("bottomboundary", -32768);
safeboundary = cfg.ReadSetting("safeboundary", 32767); //mxd
doomlightlevels = cfg.ReadSetting("doomlightlevels", true);
doomthingrotationangles = cfg.ReadSetting("doomthingrotationangles", false); //mxd
actionspecialhelp = cfg.ReadSetting("actionspecialhelp", string.Empty); //mxd
thingclasshelp = cfg.ReadSetting("thingclasshelp", string.Empty); //mxd
sidedefcompressionignoresaction = cfg.ReadSetting("sidedefcompressionignoresaction", false); //mxd
defaultLinedefActivation = cfg.ReadSetting("defaultlinedefactivation", ""); //mxd
for(int i = 0; i < Linedef.NUM_ARGS; i++) makedoorargs[i] = cfg.ReadSetting("makedoorarg" + i.ToString(CultureInfo.InvariantCulture), 0);
@ -734,7 +742,7 @@ namespace CodeImp.DoomBuilder.Config
IDictionary dic = cfg.ReadSetting("sectortypes", new Hashtable());
foreach(DictionaryEntry de in dic)
{
// Try paring the action number
// Try parsing the action number
int actionnumber;
if(int.TryParse(de.Key.ToString(),
NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite,
@ -790,10 +798,11 @@ namespace CodeImp.DoomBuilder.Config
foreach(DictionaryEntry de in dic)
{
// Check for valid structure
if(de.Value is IDictionary)
IDictionary value = de.Value as IDictionary;
if(value != null)
{
// Add option
geneffectoptions.Add(new GeneralizedOption("gen_sectortypes", "", de.Key.ToString(), de.Value as IDictionary));
geneffectoptions.Add(new GeneralizedOption("gen_sectortypes", "", de.Key.ToString(), value));
}
else
{
@ -1046,7 +1055,8 @@ namespace CodeImp.DoomBuilder.Config
}
// This checks if an action is generalized or predefined
public static bool IsGeneralized(int action, List<GeneralizedCategory> categories)
public static bool IsGeneralized(int action) { return IsGeneralized(action, General.Map.Config.GenActionCategories); }
public static bool IsGeneralized(int action, IEnumerable<GeneralizedCategory> categories)
{
// Only actions above 0
if(action > 0)
@ -1082,41 +1092,90 @@ namespace CodeImp.DoomBuilder.Config
}
//mxd
public static bool IsGeneralizedSectorEffect(int effect, IEnumerable<GeneralizedOption> options)
public static bool IsGeneralizedSectorEffect(int effect) { return IsGeneralizedSectorEffect(effect, General.Map.Config.GenEffectOptions); }
public static bool IsGeneralizedSectorEffect(int effect, List<GeneralizedOption> options)
{
if(effect == 0) return false;
foreach(GeneralizedOption option in options)
int cureffect = effect;
for(int i = options.Count - 1; i > -1; i--)
{
foreach(GeneralizedBit bit in option.Bits)
for(int j = options[i].Bits.Count - 1; j > -1; j--)
{
if(bit.Index > 0 && (effect & bit.Index) == bit.Index) return true;
GeneralizedBit bit = options[i].Bits[j];
if(bit.Index > cureffect) continue;
if(bit.Index > 0 && (cureffect & bit.Index) == bit.Index) return true;
cureffect -= bit.Index;
}
}
return false;
}
//mxd
public static HashSet<int> GetGeneralizedSectorEffectBits(int effect) { return GetGeneralizedSectorEffectBits(effect, General.Map.Config.GenEffectOptions); }
public static HashSet<int> GetGeneralizedSectorEffectBits(int effect, List<GeneralizedOption> options)
{
HashSet<int> result = new HashSet<int>();
if(effect > 0)
{
int cureffect = effect;
for(int i = options.Count - 1; i > -1; i--)
{
for(int j = options[i].Bits.Count - 1; j > -1; j--)
{
GeneralizedBit bit = options[i].Bits[j];
if(bit.Index > 0 && (cureffect & bit.Index) == bit.Index)
{
cureffect -= bit.Index;
result.Add(bit.Index);
}
}
}
if(cureffect > 0) result.Add(cureffect);
}
return result;
}
//mxd
public string GetGeneralizedSectorEffectName(int effect)
{
if(effect == 0) return "None";
string title = "Unknown";
string title = "Unknown generalized effect";
int matches = 0;
foreach(GeneralizedOption option in geneffectoptions)
int nongeneralizedeffect = effect;
// Check all options, in bigger to smaller order
for(int i = geneffectoptions.Count - 1; i > -1; i--)
{
foreach(GeneralizedBit bit in option.Bits)
for(int j = geneffectoptions[i].Bits.Count - 1; j > -1; j--)
{
if(bit.Index > 0 && (effect & bit.Index) == bit.Index)
GeneralizedBit bit = geneffectoptions[i].Bits[j];
if(bit.Index > 0 && (effect & bit.Index) == bit.Index)
{
title = option.Name + ": " + bit.Title;
title = geneffectoptions[i].Name + ": " + bit.Title;
nongeneralizedeffect -= bit.Index;
matches++;
break;
}
}
}
return (matches > 1 ? "Generalized (" + matches + " effects)" : title);
// Make generalized effect title
string gentitle = (matches > 1 ? "Generalized (" + matches + " effects)" : title);
// Generalized effect only
if(nongeneralizedeffect <= 0) return gentitle;
// Classic and generalized effects
if(General.Map.Config.SectorEffects.ContainsKey(nongeneralizedeffect))
return General.Map.Config.SectorEffects[nongeneralizedeffect].Title + " + " + gentitle;
if(matches > 0) return "Unknown effect + " + gentitle;
return "Unknown effect";
}
// This checks if a specific edit mode class is listed

View file

@ -55,13 +55,29 @@ namespace CodeImp.DoomBuilder.Config
foreach(DictionaryEntry de in opts)
{
// Is this an option and not just some value?
if(de.Value is IDictionary)
IDictionary value = de.Value as IDictionary;
if(value != null)
{
// Add the option
this.options.Add(new GeneralizedOption(structure, name, de.Key.ToString(), (IDictionary)de.Value));
this.options.Add(new GeneralizedOption(structure, name, de.Key.ToString(), value));
}
}
//mxd. Sort by bits step
if(this.options.Count > 1)
{
this.options.Sort(delegate(GeneralizedOption o1, GeneralizedOption o2)
{
if(o1.BitsStep > o2.BitsStep) return 1;
if(o1.BitsStep == o2.BitsStep)
{
if(o1 != o2) General.ErrorLogger.Add(ErrorType.Error, "\"" + o1.Name + "\" and \"" + o2.Name + "\" generalized categories have the same bit step (" + o1.BitsStep + ")!");
return 0;
}
return -1;
});
}
// We have no destructor
GC.SuppressFinalize(this);
}

View file

@ -39,6 +39,8 @@ namespace CodeImp.DoomBuilder.Config
// Properties
private string name;
private List<GeneralizedBit> bits;
private int bitstep; //mxd
public int BitsStep { get { return bitstep; } } // mxd. Each subsequent value is incremented by this number
#endregion
@ -82,6 +84,20 @@ namespace CodeImp.DoomBuilder.Config
// Sort the list
bits.Sort();
//mxd. Determine and check increment steps
if(bits.Count > 1)
{
// Use the second bit as the structure's step
bitstep = bits[1].Index;
// Check the rest of the values
//for(int i = 1; i < bits.Count; i++)
//{
// if(bits[i].Index - bits[i - 1].Index != bitstep)
// General.ErrorLogger.Add(ErrorType.Warning, "Structure \"" + fullpath + "." + name + "\" contains options with mixed increments (option \"" + bits[i].Title + "\" increment (" + (bits[i - 1].Index - bits[i].Index) + ") doesn't match the structure increment (" + bitstep + ")).");
//}
}
// We have no destructor
GC.SuppressFinalize(this);

View file

@ -36,7 +36,6 @@ namespace CodeImp.DoomBuilder.Config
private int changetags; // See TAGS_ constants
private bool removeactions;
private bool adjustheights;
#endregion
@ -44,7 +43,6 @@ namespace CodeImp.DoomBuilder.Config
public int ChangeTags { get { return changetags; } set { changetags = value; } }
public bool RemoveActions { get { return removeactions; } set { removeactions = value; } }
public bool AdjustHeights { get { return adjustheights; } set { adjustheights = value; } }
#endregion
@ -60,7 +58,6 @@ namespace CodeImp.DoomBuilder.Config
{
this.changetags = p.changetags;
this.removeactions = p.removeactions;
this.adjustheights = p.adjustheights;
}
#endregion
@ -78,7 +75,6 @@ namespace CodeImp.DoomBuilder.Config
{
changetags = cfg.ReadSetting(path + ".changetags", 0);
removeactions = cfg.ReadSetting(path + ".removeactions", false);
adjustheights = cfg.ReadSetting(path + ".adjustheights", true);
}
// This writes to configuration
@ -86,7 +82,6 @@ namespace CodeImp.DoomBuilder.Config
{
cfg.WriteSetting(path + ".changetags", changetags);
cfg.WriteSetting(path + ".removeactions", removeactions);
cfg.WriteSetting(path + ".adjustheights", adjustheights);
}
#endregion

View file

@ -19,11 +19,11 @@
using System;
using System.Collections;
using System.Collections.Generic;
using CodeImp.DoomBuilder.IO;
using System.IO;
using System.Windows.Forms;
using CodeImp.DoomBuilder.Map;
using System.Reflection;
using System.Windows.Forms;
using CodeImp.DoomBuilder.IO;
using CodeImp.DoomBuilder.Map;
using CodeImp.DoomBuilder.Plugins;
using CodeImp.DoomBuilder.Rendering;
@ -50,6 +50,9 @@ namespace CodeImp.DoomBuilder.Config
private float visualmousesensy;
private int imagebrightness;
private float doublesidedalpha;
private float activethingsalpha; //mxd
private float inactivethingsalpha; //mxd
private float hiddenthingsalpha; //mxd
private byte doublesidedalphabyte;
private int nightscircleprecision;
private float backgroundalpha;
@ -87,6 +90,10 @@ namespace CodeImp.DoomBuilder.Config
private bool locatetexturegroup; //mxd
private bool keeptexturefilterfocused; //mxd
private SplitLineBehavior splitlinebehavior; //mxd
private MergeGeometryMode mergegeomode; //mxd
private bool splitjoinedsectors; //mxd
private bool usehighlight; //mxd
private bool switchviewmodes; //mxd
//mxd. Script editor settings
private string scriptfontname;
@ -102,8 +109,13 @@ namespace CodeImp.DoomBuilder.Config
private bool scriptshowfolding; //mxd
private bool scriptautoshowautocompletion; //mxd
//mxd
private ModelRenderMode gzDrawModelsMode;
//mxd. Text labels settings
private string textlabelfontname;
private int textlabelfontsize;
private bool textlabelfontbold;
//mxd
private ModelRenderMode gzDrawModelsMode;
private LightRenderMode gzDrawLightsMode;
private bool gzDrawFog;
private bool gzDrawSky;
@ -112,8 +124,6 @@ namespace CodeImp.DoomBuilder.Config
private bool gzShowEventLines;
private bool gzOldHighlightMode;
private int gzMaxDynamicLights;
private float gzDynamicLightRadius;
private float gzDynamicLightIntensity;
private bool gzStretchView;
private float gzVertexScale2D;
private bool gzShowVisualVertices;
@ -121,7 +131,7 @@ namespace CodeImp.DoomBuilder.Config
private string lastUsedConfigName;
private string lastUsedMapFolder;
private bool gzMarkExtraFloors;
private bool gzdoomrenderingeffects = true; //mxd
private bool enhancedrenderingeffects = true; //mxd
private bool srb2renderingeffects = true; //sphere
private bool showcolormaps = true;
private bool drawCrosshair;
@ -161,7 +171,10 @@ namespace CodeImp.DoomBuilder.Config
public int ImageBrightness { get { return imagebrightness; } internal set { imagebrightness = value; } }
public float DoubleSidedAlpha { get { return doublesidedalpha; } internal set { doublesidedalpha = value; doublesidedalphabyte = (byte)(doublesidedalpha * 255f); } }
public byte DoubleSidedAlphaByte { get { return doublesidedalphabyte; } }
public int NiGHTSCirclePrecision { get { return nightscircleprecision; } internal set { nightscircleprecision = value; } }
public int NiGHTSCirclePrecision { get { return nightscircleprecision; } internal set { nightscircleprecision = value; } }
public float ActiveThingsAlpha { get { return activethingsalpha; } internal set { activethingsalpha = value; } } //mxd
public float InactiveThingsAlpha { get { return inactivethingsalpha; } internal set { inactivethingsalpha = value; } } //mxd
public float HiddenThingsAlpha { get { return hiddenthingsalpha; } internal set { hiddenthingsalpha = value; } } //mxd
public float BackgroundAlpha { get { return backgroundalpha; } internal set { backgroundalpha = value; } }
public float VisualMouseSensX { get { return visualmousesensx; } internal set { visualmousesensx = value; } }
public float VisualMouseSensY { get { return visualmousesensy; } internal set { visualmousesensy = value; } }
@ -199,23 +212,44 @@ namespace CodeImp.DoomBuilder.Config
public bool LocateTextureGroup { get { return locatetexturegroup; } internal set { locatetexturegroup = value; } } //mxd
public bool KeepTextureFilterFocused { get { return keeptexturefilterfocused; } internal set { keeptexturefilterfocused = value; } } //mxd
public SplitLineBehavior SplitLineBehavior { get { return splitlinebehavior; } set { splitlinebehavior = value; } } //mxd
public MergeGeometryMode MergeGeometryMode { get { return mergegeomode; } internal set { mergegeomode = value; } } //mxd
public bool SplitJoinedSectors { get { return splitjoinedsectors; } internal set { splitjoinedsectors = value; } } //mxd
//mxd. Script editor settings
public string ScriptFontName { get { return scriptfontname; } internal set { scriptfontname = value; } }
public int ScriptFontSize { get { return scriptfontsize; } internal set { scriptfontsize = value; } }
public bool ScriptFontBold { get { return scriptfontbold; } internal set { scriptfontbold = value; } }
public bool ScriptOnTop { get { return scriptontop; } internal set { scriptontop = value; } }
public bool ScriptAutoIndent { get { return scriptautoindent; } internal set { scriptautoindent = value; } }
public bool ScriptAllmanStyle { get { return scriptallmanstyle; } internal set { scriptallmanstyle = value; } } //mxd
public bool ScriptUseTabs { get { return scriptusetabs; } internal set { scriptusetabs = value; } } //mxd
public int ScriptTabWidth { get { return scripttabwidth; } internal set { scripttabwidth = value; } }
public bool ScriptAutoCloseBrackets { get { return scriptautoclosebrackets; } internal set { scriptautoclosebrackets = value; } } //mxd
public bool ScriptShowLineNumbers { get { return scriptshowlinenumbers; } internal set { scriptshowlinenumbers = value; } } //mxd
public bool ScriptShowFolding { get { return scriptshowfolding; } internal set { scriptshowfolding = value; } } //mxd
public bool ScriptAutoShowAutocompletion { get { return scriptautoshowautocompletion; } internal set { scriptautoshowautocompletion = value; } } //mxd
//mxd. Highlight mode
public bool UseHighlight
{
get { return usehighlight; }
set
{
usehighlight = value;
General.Map.Renderer3D.ShowSelection = General.Settings.UseHighlight;
General.Map.Renderer3D.ShowHighlight = General.Settings.UseHighlight;
}
}
//mxd
public ModelRenderMode GZDrawModelsMode { get { return gzDrawModelsMode; } internal set { gzDrawModelsMode = value; } }
public bool SwitchViewModes { get { return switchviewmodes; } set { switchviewmodes = value; } } //mxd
//mxd. Script editor settings
public string ScriptFontName { get { return scriptfontname; } internal set { scriptfontname = value; } }
public int ScriptFontSize { get { return scriptfontsize; } internal set { scriptfontsize = value; } }
public bool ScriptFontBold { get { return scriptfontbold; } internal set { scriptfontbold = value; } }
public bool ScriptOnTop { get { return scriptontop; } internal set { scriptontop = value; } }
public bool ScriptAutoIndent { get { return scriptautoindent; } internal set { scriptautoindent = value; } }
public bool ScriptAllmanStyle { get { return scriptallmanstyle; } internal set { scriptallmanstyle = value; } } //mxd
public bool ScriptUseTabs { get { return scriptusetabs; } internal set { scriptusetabs = value; } } //mxd
public int ScriptTabWidth { get { return scripttabwidth; } internal set { scripttabwidth = value; } }
public bool ScriptAutoCloseBrackets { get { return scriptautoclosebrackets; } internal set { scriptautoclosebrackets = value; } } //mxd
public bool ScriptShowLineNumbers { get { return scriptshowlinenumbers; } internal set { scriptshowlinenumbers = value; } } //mxd
public bool ScriptShowFolding { get { return scriptshowfolding; } internal set { scriptshowfolding = value; } } //mxd
public bool ScriptAutoShowAutocompletion { get { return scriptautoshowautocompletion; } internal set { scriptautoshowautocompletion = value; } } //mxd
//mxd. Text labels settings
public string TextLabelFontName { get { return textlabelfontname; } internal set { textlabelfontname = value; } }
public int TextLabelFontSize { get { return textlabelfontsize; } internal set { textlabelfontsize = value; } }
public bool TextLabelFontBold { get { return textlabelfontbold; } internal set { textlabelfontbold = value; } }
//mxd
public ModelRenderMode GZDrawModelsMode { get { return gzDrawModelsMode; } internal set { gzDrawModelsMode = value; } }
public LightRenderMode GZDrawLightsMode { get { return gzDrawLightsMode; } internal set { gzDrawLightsMode = value; } }
public bool GZDrawFog { get { return gzDrawFog; } internal set { gzDrawFog = value; } }
public bool GZDrawSky { get { return gzDrawSky; } internal set { gzDrawSky = value; } }
@ -224,8 +258,6 @@ namespace CodeImp.DoomBuilder.Config
public bool GZShowEventLines { get { return gzShowEventLines; } internal set { gzShowEventLines = value; } }
public bool GZOldHighlightMode { get { return gzOldHighlightMode; } internal set { gzOldHighlightMode = value; } }
public int GZMaxDynamicLights { get { return gzMaxDynamicLights; } internal set { gzMaxDynamicLights = value; } }
public float GZDynamicLightRadius { get { return gzDynamicLightRadius; } internal set { gzDynamicLightRadius = value; } }
public float GZDynamicLightIntensity { get { return gzDynamicLightIntensity; } internal set { gzDynamicLightIntensity = value; } }
public bool GZStretchView { get { return gzStretchView; } internal set { gzStretchView = value; } }
public float GZVertexScale2D { get { return gzVertexScale2D; } internal set { gzVertexScale2D = value; } }
public bool GZShowVisualVertices { get { return gzShowVisualVertices; } internal set { gzShowVisualVertices = value; } }
@ -233,7 +265,7 @@ namespace CodeImp.DoomBuilder.Config
public string LastUsedConfigName { get { return lastUsedConfigName; } internal set { lastUsedConfigName = value; } }
public string LastUsedMapFolder { get { return lastUsedMapFolder; } internal set { lastUsedMapFolder = value; } }
public bool GZMarkExtraFloors { get { return gzMarkExtraFloors; } internal set { gzMarkExtraFloors = value; } }
public bool GZDoomRenderingEffects { get { return gzdoomrenderingeffects; } set { gzdoomrenderingeffects = value; } } //mxd
public bool EnhancedRenderingEffects { get { return enhancedrenderingeffects; } set { enhancedrenderingeffects = value; } } //mxd
public bool SRB2RenderingEffects { get { return srb2renderingeffects; } set { srb2renderingeffects = value; } } //sphere
public bool ShowColormaps { get { return showcolormaps; } set { showcolormaps = value; } } //mxd
public bool DrawCrosshair { get { return drawCrosshair; } internal set { drawCrosshair = value; } }
@ -299,7 +331,10 @@ namespace CodeImp.DoomBuilder.Config
doublesidedalpha = cfg.ReadSetting("doublesidedalpha", 0.4f);
doublesidedalphabyte = (byte)(doublesidedalpha * 255f);
nightscircleprecision = cfg.ReadSetting("nightscircleprecision", 360);
backgroundalpha = cfg.ReadSetting("backgroundalpha", 1.0f);
activethingsalpha = cfg.ReadSetting("activethingsalpha", Presentation.THINGS_ALPHA); //mxd
inactivethingsalpha = cfg.ReadSetting("inactivethingsalpha", Presentation.THINGS_BACK_ALPHA); //mxd
hiddenthingsalpha = cfg.ReadSetting("hiddenthingsalpha", Presentation.THINGS_HIDDEN_ALPHA); //mxd
backgroundalpha = cfg.ReadSetting("backgroundalpha", 1.0f);
qualitydisplay = cfg.ReadSetting("qualitydisplay", true);
testmonsters = cfg.ReadSetting("testmonsters", true);
defaultviewmode = cfg.ReadSetting("defaultviewmode", (int)ViewMode.Normal);
@ -333,21 +368,30 @@ namespace CodeImp.DoomBuilder.Config
showtexturesizes = cfg.ReadSetting("showtexturesizes", true);
locatetexturegroup = cfg.ReadSetting("locatetexturegroup", true); //mxd
keeptexturefilterfocused = cfg.ReadSetting("keeptexturefilterfocused", true); //mxd
splitlinebehavior = (SplitLineBehavior) General.Clamp(cfg.ReadSetting("splitlinebehavior", 0), 0, 3); //mxd
splitlinebehavior = (SplitLineBehavior)General.Clamp(cfg.ReadSetting("splitlinebehavior", 0), 0, Enum.GetValues(typeof(SplitLineBehavior)).Length - 1); //mxd
mergegeomode = (MergeGeometryMode)General.Clamp(cfg.ReadSetting("mergegeometrymode", (int)MergeGeometryMode.REPLACE), 0, Enum.GetValues(typeof(MergeGeometryMode)).Length - 1); //mxd
splitjoinedsectors = cfg.ReadSetting("splitjoinedsectors", true); //mxd
usehighlight = cfg.ReadSetting("usehighlight", true); //mxd
switchviewmodes = cfg.ReadSetting("switchviewmodes", false); //mxd
//mxd. Script editor
scriptfontname = cfg.ReadSetting("scriptfontname", "Courier New");
scriptfontsize = cfg.ReadSetting("scriptfontsize", 10);
scriptfontbold = cfg.ReadSetting("scriptfontbold", false);
scriptontop = cfg.ReadSetting("scriptontop", true);
scriptautoindent = cfg.ReadSetting("scriptautoindent", true);
scriptallmanstyle = cfg.ReadSetting("scriptallmanstyle", false); //mxd
scriptusetabs = cfg.ReadSetting("scriptusetabs", true); //mxd
scripttabwidth = cfg.ReadSetting("scripttabwidth", 4);
scriptautoclosebrackets = cfg.ReadSetting("scriptautoclosebrackets", true); //mxd
scriptshowlinenumbers = cfg.ReadSetting("scriptshowlinenumbers", true); //mxd
scriptshowfolding = cfg.ReadSetting("scriptshowfolding", true); //mxd
scriptautoshowautocompletion = cfg.ReadSetting("scriptautoshowautocompletion", true); //mxd
//mxd. Script editor
scriptfontname = cfg.ReadSetting("scriptfontname", "Courier New");
scriptfontsize = cfg.ReadSetting("scriptfontsize", 10);
scriptfontbold = cfg.ReadSetting("scriptfontbold", false);
scriptontop = cfg.ReadSetting("scriptontop", true);
scriptautoindent = cfg.ReadSetting("scriptautoindent", true);
scriptallmanstyle = cfg.ReadSetting("scriptallmanstyle", false);
scriptusetabs = cfg.ReadSetting("scriptusetabs", true);
scripttabwidth = cfg.ReadSetting("scripttabwidth", 4);
scriptautoclosebrackets = cfg.ReadSetting("scriptautoclosebrackets", true);
scriptshowlinenumbers = cfg.ReadSetting("scriptshowlinenumbers", true);
scriptshowfolding = cfg.ReadSetting("scriptshowfolding", true);
scriptautoshowautocompletion = cfg.ReadSetting("scriptautoshowautocompletion", true);
//mxd. Text labels
textlabelfontname = cfg.ReadSetting("textlabelfontname", "Microsoft Sans Serif");
textlabelfontsize = cfg.ReadSetting("textlabelfontsize", 10);
textlabelfontbold = cfg.ReadSetting("textlabelfontbold", false);
//mxd
gzDrawModelsMode = (ModelRenderMode)cfg.ReadSetting("gzdrawmodels", (int)ModelRenderMode.ALL);
@ -359,8 +403,6 @@ namespace CodeImp.DoomBuilder.Config
gzShowEventLines = cfg.ReadSetting("gzshoweventlines", true);
gzOldHighlightMode = cfg.ReadSetting("gzoldhighlightmode", false);
gzMaxDynamicLights = cfg.ReadSetting("gzmaxdynamiclights", 16);
gzDynamicLightRadius = cfg.ReadSetting("gzdynamiclightradius", 1.0f);
gzDynamicLightIntensity = cfg.ReadSetting("gzdynamiclightintensity", 1.0f);
gzStretchView = cfg.ReadSetting("gzstretchview", true);
gzVertexScale2D = cfg.ReadSetting("gzvertexscale2d", 1.0f);
gzShowVisualVertices = cfg.ReadSetting("gzshowvisualvertices", true);
@ -415,7 +457,10 @@ namespace CodeImp.DoomBuilder.Config
cfg.WriteSetting("testmonsters", testmonsters);
cfg.WriteSetting("doublesidedalpha", doublesidedalpha);
cfg.WriteSetting("nightscircleprecision", nightscircleprecision);
cfg.WriteSetting("backgroundalpha", backgroundalpha);
cfg.WriteSetting("activethingsalpha", activethingsalpha); //mxd
cfg.WriteSetting("inactivethingsalpha", inactivethingsalpha); //mxd
cfg.WriteSetting("hiddenthingsalpha", hiddenthingsalpha); //mxd
cfg.WriteSetting("backgroundalpha", backgroundalpha);
cfg.WriteSetting("defaultviewmode", defaultviewmode);
cfg.WriteSetting("classicbilinear", classicbilinear);
cfg.WriteSetting("visualbilinear", visualbilinear);
@ -448,20 +493,29 @@ namespace CodeImp.DoomBuilder.Config
cfg.WriteSetting("locatetexturegroup", locatetexturegroup); //mxd
cfg.WriteSetting("keeptexturefilterfocused", keeptexturefilterfocused); //mxd
cfg.WriteSetting("splitlinebehavior", (int)splitlinebehavior); //mxd
cfg.WriteSetting("mergegeometrymode", (int)mergegeomode); //mxd
cfg.WriteSetting("splitjoinedsectors", splitjoinedsectors); //mxd
cfg.WriteSetting("usehighlight", usehighlight); //mxd
cfg.WriteSetting("switchviewmodes", switchviewmodes); //mxd
//mxd. Script editor
cfg.WriteSetting("scriptfontname", scriptfontname);
cfg.WriteSetting("scriptfontsize", scriptfontsize);
cfg.WriteSetting("scriptfontbold", scriptfontbold);
cfg.WriteSetting("scriptontop", scriptontop);
cfg.WriteSetting("scriptusetabs", scriptusetabs); //mxd
cfg.WriteSetting("scripttabwidth", scripttabwidth);
cfg.WriteSetting("scriptautoindent", scriptautoindent);
cfg.WriteSetting("scriptallmanstyle", scriptallmanstyle); //mxd
cfg.WriteSetting("scriptautoclosebrackets", scriptautoclosebrackets); //mxd
cfg.WriteSetting("scriptshowlinenumbers", scriptshowlinenumbers); //mxd
cfg.WriteSetting("scriptshowfolding", scriptshowfolding); //mxd
cfg.WriteSetting("scriptautoshowautocompletion", scriptautoshowautocompletion); //mxd
//mxd. Script editor
cfg.WriteSetting("scriptfontname", scriptfontname);
cfg.WriteSetting("scriptfontsize", scriptfontsize);
cfg.WriteSetting("scriptfontbold", scriptfontbold);
cfg.WriteSetting("scriptontop", scriptontop);
cfg.WriteSetting("scriptusetabs", scriptusetabs);
cfg.WriteSetting("scripttabwidth", scripttabwidth);
cfg.WriteSetting("scriptautoindent", scriptautoindent);
cfg.WriteSetting("scriptallmanstyle", scriptallmanstyle);
cfg.WriteSetting("scriptautoclosebrackets", scriptautoclosebrackets);
cfg.WriteSetting("scriptshowlinenumbers", scriptshowlinenumbers);
cfg.WriteSetting("scriptshowfolding", scriptshowfolding);
cfg.WriteSetting("scriptautoshowautocompletion", scriptautoshowautocompletion);
//mxd. Text labels
cfg.WriteSetting("textlabelfontname", textlabelfontname);
cfg.WriteSetting("textlabelfontsize", textlabelfontsize);
cfg.WriteSetting("textlabelfontbold", textlabelfontbold);
//mxd
cfg.WriteSetting("gzdrawmodels", (int)gzDrawModelsMode);
@ -473,8 +527,6 @@ namespace CodeImp.DoomBuilder.Config
cfg.WriteSetting("gzoldhighlightmode", gzOldHighlightMode);
cfg.WriteSetting("gztoolbargzdoom", gzToolbarGZDoom);
cfg.WriteSetting("gzmaxdynamiclights", gzMaxDynamicLights);
cfg.WriteSetting("gzdynamiclightradius", gzDynamicLightRadius);
cfg.WriteSetting("gzdynamiclightintensity", gzDynamicLightIntensity);
cfg.WriteSetting("gzstretchview", gzStretchView);
cfg.WriteSetting("gzvertexscale2d", gzVertexScale2D);
cfg.WriteSetting("gzshowvisualvertices", gzShowVisualVertices);

View file

@ -48,9 +48,7 @@ namespace CodeImp.DoomBuilder.Config
{
#region ================== Constants
private const string WORD_CHARS = "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; //mxd
#endregion
#endregion
#region ================== Variables
@ -62,8 +60,8 @@ namespace CodeImp.DoomBuilder.Config
// Editor settings
private readonly string description;
private readonly int codepage;
private readonly string wordchars; //mxd. Characters to be threated as part of a word by Scintilla
private readonly string[] extensions;
private readonly string extrawordchars; //mxd. Extra characters to be threated as part of a word by Scintilla
private readonly string[] extensions;
private readonly bool casesensitive;
private readonly int insertcase;
private readonly Lexer lexer;
@ -115,8 +113,8 @@ namespace CodeImp.DoomBuilder.Config
public string ArrayClose { get { return arrayclose; } } //mxd
public string ArgumentDelimiter { get { return argumentdelimiter; } }
public string Terminator { get { return terminator; } }
public string WordCharacters { get { return wordchars; } } //mxd
public ScriptType ScriptType { get { return scripttype; } } //mxd
public string ExtraWordCharacters { get { return extrawordchars; } } //mxd
public ScriptType ScriptType { get { return scripttype; } } //mxd
// Collections
public ICollection<string> Keywords { get { return keywordkeyssorted; } }
@ -163,8 +161,8 @@ namespace CodeImp.DoomBuilder.Config
terminator = "";
description = "Plain text";
scripttype = ScriptType.UNKNOWN; //mxd
wordchars = WORD_CHARS; //mxd
extensions = new[] { "txt" };
extrawordchars = ""; //mxd
extensions = new[] { "txt" };
}
// Constructor
@ -201,7 +199,7 @@ namespace CodeImp.DoomBuilder.Config
argumentdelimiter = cfg.ReadSetting("argumentdelimiter", "");
terminator = cfg.ReadSetting("terminator", "");
scripttype = (ScriptType)cfg.ReadSetting("scripttype", (int)ScriptType.UNKNOWN); //mxd
wordchars = WORD_CHARS + cfg.ReadSetting("extrawordchars", ""); //mxd
extrawordchars = cfg.ReadSetting("extrawordchars", ""); //mxd
//mxd. Make braces array
if (!string.IsNullOrEmpty(functionopen)) braces.Add(functionopen[0]);

View file

@ -41,6 +41,7 @@ namespace CodeImp.DoomBuilder.Config
public const int THING_ERROR_NONE = 0;
public const int THING_ERROR_INSIDE = 1;
public const int THING_ERROR_INSIDE_STUCK = 2;
private const float THING_FIXED_SIZE = 14f; //mxd
#endregion
@ -232,7 +233,7 @@ namespace CodeImp.DoomBuilder.Config
this.args[i] = new ArgumentInfo(cfg, "thingtypes." + cat.Name + "." + key, i, enums);
// Safety
if(this.radius < 4f) this.radius = 16f;
if(this.radius < 4f || this.fixedsize) this.radius = THING_FIXED_SIZE;
if(this.hangs && this.absolutez) this.hangs = false; //mxd
// Make long name for sprite lookup
@ -287,8 +288,8 @@ namespace CodeImp.DoomBuilder.Config
this.flagsvaluetext = cat.FlagsValueText;
this.parametertext = cat.ParameterText;
// Safety
if (this.radius < 4f) this.radius = 8f;
// Safety
if(this.radius < 4f || this.fixedsize) this.radius = THING_FIXED_SIZE;
if(this.hangs && this.absolutez) this.hangs = false; //mxd
// Make long name for sprite lookup
@ -341,8 +342,7 @@ namespace CodeImp.DoomBuilder.Config
this.flagsvaluetext = cat.FlagsValueText;
this.parametertext = cat.ParameterText;
// Safety
if (this.radius < 4f) this.radius = 8f;
// Safety
if(this.hangs && this.absolutez) this.hangs = false; //mxd
// Apply settings from actor
@ -392,8 +392,7 @@ namespace CodeImp.DoomBuilder.Config
this.flagsvaluetext = cat.FlagsValueText;
this.parametertext = cat.ParameterText;
// Safety
if (this.radius < 4f) this.radius = 8f;
// Safety
if(this.hangs && this.absolutez) this.hangs = false; //mxd
// Apply settings from actor
@ -618,7 +617,7 @@ namespace CodeImp.DoomBuilder.Config
this.bright = actor.GetFlagValue("bright", false);
// Safety
if(this.radius < 4f) this.radius = 8f;
if(this.radius < 4f || this.fixedsize) this.radius = THING_FIXED_SIZE;
if(this.spritescale.Width == 0.0f) this.spritescale.Width = 1.0f;
if(this.spritescale.Height == 0.0f) this.spritescale.Height = 1.0f;

View file

@ -221,6 +221,11 @@ namespace CodeImp.DoomBuilder.Controls
list.SelectedIndex = itemindex;
list.Refresh();
}
//mxd. This may be generalized effect, and it may've changed
else if(itemindex == -1)
{
list.Refresh();
}
// Raise change event
//mxd. This HAS to be raised during Edit form setup, otherwise TypeHandlers in ArgumentBoxes won't be initialized

View file

@ -28,18 +28,24 @@ namespace CodeImp.DoomBuilder.Controls
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.combobox = new System.Windows.Forms.ComboBox();
this.button = new System.Windows.Forms.Button();
this.scrollbuttons = new System.Windows.Forms.VScrollBar();
this.tooltip = new System.Windows.Forms.ToolTip(this.components);
this.SuspendLayout();
//
// combobox
//
this.combobox.DropDownWidth = 130;
this.combobox.ForeColor = System.Drawing.SystemColors.HotTrack;
this.combobox.Location = new System.Drawing.Point(0, 2);
this.combobox.Name = "combobox";
this.combobox.Size = new System.Drawing.Size(149, 21);
this.combobox.TabIndex = 0;
this.tooltip.SetToolTip(this.combobox, "Use ++ or -- prefixes to change by given value.\r\nUse +++ or --- prefixes to incre" +
"mentally change by given value.\r\nUse < or > prefixes to decrementally or increme" +
"ntally set given value.");
this.combobox.Validating += new System.ComponentModel.CancelEventHandler(this.combobox_Validating);
this.combobox.TextChanged += new System.EventHandler(this.combobox_TextChanged);
//
@ -86,5 +92,6 @@ namespace CodeImp.DoomBuilder.Controls
private System.Windows.Forms.ComboBox combobox;
private System.Windows.Forms.Button button;
private System.Windows.Forms.VScrollBar scrollbuttons;
private System.Windows.Forms.ToolTip tooltip;
}
}

View file

@ -89,7 +89,7 @@ namespace CodeImp.DoomBuilder.Controls
private void combobox_Validating(object sender, CancelEventArgs e)
{
string str = combobox.Text.Trim().ToLowerInvariant();
str = str.TrimStart('+', '-');
str = str.TrimStart('+', '-', '<', '>');
// Anything in the box?
if(combobox.Text.Trim().Length > 0)
@ -132,6 +132,13 @@ namespace CodeImp.DoomBuilder.Controls
private void combobox_TextChanged(object sender, EventArgs e)
{
scrollbuttons.Enabled = !CheckIsRelative();
//mxd. Update button image?
if(typehandler.DynamicImage)
{
combobox_Validating(sender, new CancelEventArgs());
button.Image = typehandler.BrowseImage;
}
}
// Mouse wheel used
@ -259,36 +266,72 @@ 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("--")
|| 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 step)
{
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 = original + num * step;
}
//mxd. Prefixed with ---?
else if(str.StartsWith("---"))
{
// Subtract offset from number
int num;
if(!int.TryParse(numstr, out num)) num = 0;
result = original - num * step;
}
// mxd. Prefixed with <?
else if(str.StartsWith("<"))
{
// Incremental decrease
int num;
if(!int.TryParse(numstr, out num)) num = 0;
result = num - step;
}
// mxd. Prefixed with >?
else if(str.StartsWith(">"))
{
// Incremental increase
int num;
if(!int.TryParse(numstr, out num)) num = 0;
result = num + step;
}
// 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

Some files were not shown because too many files have changed in this diff Show more