mirror of
https://git.do.srb2.org/STJr/ZoneBuilder.git
synced 2025-04-22 01:10:57 +00:00
Added: action argument inputs now support incremental increase/decrease prefixes (+++ and ---).
Probably fixed probable I/O race condition when loading images. Fixed Visual mode stuttering due to floating point precision degradation when running the editor for several days without restarting (internal timer is now reset when saving the map or creating a new one). Fixed, Nodes Viewer, cosmetic: Nodes Viewer window position was reset after pressing the "Rebuild Nodes" button. Added Eternity Game configurations by printz. Updated ZDoom_ACS.cfg (CheckClass). Updated ZDoom ACC (CheckClass).
This commit is contained in:
parent
d1194019db
commit
7435d4bd5b
30 changed files with 7658 additions and 60 deletions
|
@ -395,6 +395,9 @@ special
|
|||
-124:EndDBTransaction(0),
|
||||
-125:GetDBEntries(1),
|
||||
|
||||
// -1xx are reserved for Zandronum
|
||||
-200:CheckClass(1),
|
||||
|
||||
// ZDaemon's
|
||||
-19620:GetTeamScore(1),
|
||||
-19621:SetTeamScore(2),
|
||||
|
|
61
Build/Configurations/Eternity_Doom2Doom.cfg
Normal file
61
Build/Configurations/Eternity_Doom2Doom.cfg
Normal 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");
|
||||
}
|
57
Build/Configurations/Eternity_DoomUDMF.cfg
Normal file
57
Build/Configurations/Eternity_DoomUDMF.cfg
Normal 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");
|
||||
}
|
364
Build/Configurations/Includes/Eternity_common.cfg
Normal file
364
Build/Configurations/Includes/Eternity_common.cfg
Normal file
|
@ -0,0 +1,364 @@
|
|||
// ***********************************************************
|
||||
// * *
|
||||
// * These values are mainly for UDMF Eternity *
|
||||
// * *
|
||||
// ***********************************************************
|
||||
|
||||
common
|
||||
{
|
||||
// Some common settings
|
||||
include("Common.cfg");
|
||||
|
||||
// Default testing parameters
|
||||
include("Test_params.cfg", "vanilla_mapxx"); // Eternity doesn't yet have +map
|
||||
|
||||
// Action special help (mxd)
|
||||
actionspecialhelp = "http://eternity.youfailit.net/wiki/Detailed_parameterized_linedef_specification";
|
||||
|
||||
// FIXME: this info is not on the wiki, but in things.edf
|
||||
// Thing class help (mxd)
|
||||
thingclasshelp = "https://github.com/team-eternity/eternity/blob/master/base/doom/things.edf";
|
||||
|
||||
// Default nodebuilder configurations
|
||||
defaultsavecompiler = "zdbsp_normal";
|
||||
defaulttestcompiler = "zdbsp_fast";
|
||||
|
||||
// Generalized actions
|
||||
// generalizedlinedefs is true for Doom format and false for
|
||||
// the other two, so it's not here.
|
||||
generalizedsectors = true;
|
||||
|
||||
//mxd. Maximum safe map size check (0 means skip check)
|
||||
safeboundary = 0;
|
||||
|
||||
// Texture loading options
|
||||
mixtexturesflats = true;
|
||||
defaulttexturescale = 1.0f;
|
||||
defaultflatscale = 1.0f;
|
||||
scaledtextureoffsets = true;
|
||||
|
||||
//mxd. Sidedefs compression
|
||||
// ioanch FIXME: what does this do? I made it false
|
||||
sidedefcompressionignoresaction = false;
|
||||
|
||||
// Texture sources
|
||||
textures
|
||||
{
|
||||
include("Doom_misc.cfg", "textures");
|
||||
include("ZDoom_misc.cfg", "textures"); // works for Eternity too
|
||||
}
|
||||
|
||||
//mxd. HiRes sources
|
||||
hires
|
||||
{
|
||||
include("ZDoom_misc.cfg", "hires");
|
||||
}
|
||||
|
||||
// Patch sources
|
||||
patches
|
||||
{
|
||||
include("Doom_misc.cfg", "patches");
|
||||
}
|
||||
|
||||
// Sprite sources
|
||||
sprites
|
||||
{
|
||||
include("Doom_misc.cfg", "sprites");
|
||||
}
|
||||
|
||||
// Flat sources
|
||||
flats
|
||||
{
|
||||
include("Doom_misc.cfg", "flats");
|
||||
}
|
||||
|
||||
// Colormap sources
|
||||
colormaps
|
||||
{
|
||||
include("Boom_misc.cfg", "colormaps");
|
||||
}
|
||||
|
||||
//mxd. Voxel sources
|
||||
// Not in Eternity
|
||||
// voxels
|
||||
// {
|
||||
// include("ZDoom_misc.cfg", "voxels");
|
||||
// }
|
||||
|
||||
// Generalized sector types
|
||||
gen_sectortypes
|
||||
{
|
||||
include("ZDoom_generalized.cfg", "gen_sectortypes"); // same as in ZDOOM
|
||||
}
|
||||
|
||||
//mxd. Built-in Damage types
|
||||
// ioanch: From base/things.edf
|
||||
damagetypes = "Fist Pistol Shotgun Chaingun Plasma BFG BFG_Splash Chainsaw SShotgun BetaBFG BFGBurst Slime Lava Crush Telefrag Falling Suicide Barrel Splash Quake Rocket R_Splash BFG11k_Splash Grenade Hit PlayerMisc Fire";
|
||||
}
|
||||
|
||||
mapformat_doom
|
||||
{
|
||||
mixtexturesflats = true;
|
||||
// The format interface handles the map data format
|
||||
formatinterface = "DoomMapSetIO";
|
||||
|
||||
maplumpnames
|
||||
{
|
||||
include("Doom_misc.cfg", "doommaplumpnames");
|
||||
include("Boom_misc.cfg", "boommaplumpnames");
|
||||
}
|
||||
|
||||
// When this is set to true, sectors with the same tag will light up when a line is highlighted
|
||||
linetagindicatesectors = true;
|
||||
|
||||
// Special linedefs
|
||||
include("ZDoom_misc.cfg", "speciallinedefs_doomhexen");
|
||||
|
||||
// Default flags for first new thing
|
||||
defaultthingflags
|
||||
{
|
||||
include("Doom_misc.cfg", "defaultthingflags");
|
||||
}
|
||||
|
||||
// Door making
|
||||
include("ZDoom_misc.cfg", "doormaking_doom");
|
||||
|
||||
// Generalized actions
|
||||
generalizedlinedefs = true;
|
||||
generalizedsectors = true;
|
||||
|
||||
// GENERALIZED LINEDEF TYPES
|
||||
gen_linedeftypes
|
||||
{
|
||||
include("Boom_generalized.cfg", "gen_linedeftypes");
|
||||
}
|
||||
|
||||
// GENERALIZED SECTOR TYPES
|
||||
gen_sectortypes
|
||||
{
|
||||
include("Boom_generalized.cfg", "gen_sectortypes");
|
||||
include("Eternity_generalized.cfg", "gen_sectortypes");
|
||||
}
|
||||
|
||||
// DEFAULT SECTOR BRIGHTNESS LEVELS
|
||||
sectorbrightness
|
||||
{
|
||||
include("Doom_misc.cfg", "sectorbrightness");
|
||||
}
|
||||
|
||||
// SECTOR TYPES
|
||||
sectortypes
|
||||
{
|
||||
include("Doom_sectors.cfg");
|
||||
}
|
||||
|
||||
// LINEDEF FLAGS
|
||||
linedefflags
|
||||
{
|
||||
include("Doom_misc.cfg", "linedefflags");
|
||||
include("Boom_misc.cfg", "linedefflags");
|
||||
include("Eternity_misc.cfg", "linedefflags");
|
||||
}
|
||||
|
||||
// LINEDEF ACTIVATIONS
|
||||
linedefactivations
|
||||
{
|
||||
}
|
||||
|
||||
// Linedef flags UDMF translation table
|
||||
// This is needed for copy/paste and prefabs to work properly
|
||||
// When the UDMF field name is prefixed with ! it is inverted
|
||||
linedefflagstranslation
|
||||
{
|
||||
include("Doom_misc.cfg", "linedefflagstranslation");
|
||||
include("Boom_misc.cfg", "linedefflagstranslation");
|
||||
}
|
||||
|
||||
// LINEDEF TYPES
|
||||
linedeftypes
|
||||
{
|
||||
include("Doom_linedefs.cfg");
|
||||
include("Boom_linedefs.cfg");
|
||||
include("Eternity_linedefs.cfg", "doom");
|
||||
}
|
||||
|
||||
// THING FLAGS
|
||||
thingflags
|
||||
{
|
||||
include("Doom_misc.cfg", "thingflags");
|
||||
include("Boom_misc.cfg", "thingflags");
|
||||
include("Eternity_misc.cfg", "thingflags");
|
||||
}
|
||||
|
||||
// Thing flags UDMF translation table
|
||||
// This is needed for copy/paste and prefabs to work properly
|
||||
// When the UDMF field name is prefixed with ! it is inverted
|
||||
thingflagstranslation
|
||||
{
|
||||
include("Doom_misc.cfg", "thingflagstranslation");
|
||||
include("Boom_misc.cfg", "thingflagstranslation");
|
||||
}
|
||||
// How to compare thing flags (for the stuck things error checker)
|
||||
thingflagscompare
|
||||
{
|
||||
include("Boom_misc.cfg", "thingflagscompare");
|
||||
}
|
||||
|
||||
// Things flags masks
|
||||
include("Doom_misc.cfg", "thingflagsmasks");
|
||||
|
||||
}
|
||||
// ***********************************************************
|
||||
// * *
|
||||
// * Text map format *
|
||||
// * *
|
||||
// ***********************************************************
|
||||
|
||||
mapformat_udmf
|
||||
{
|
||||
// The format interface handles the map data format
|
||||
formatinterface = "UniversalMapSetIO";
|
||||
|
||||
//mxd. The default script compiler to use
|
||||
defaultscriptcompiler = "zdoom_acs.cfg";
|
||||
|
||||
// Enables support for long (> 8 chars) texture names
|
||||
// WARNING: this should only be enabled for UDMF game configurations!
|
||||
// WARNING: enabling this will make maps incompatible with Doom Builder 2 and can lead to problems in Slade 3!
|
||||
longtexturenames = true;
|
||||
|
||||
// Default nodebuilder configurations
|
||||
defaultsavecompiler = "zdbsp_udmf_normal";
|
||||
defaulttestcompiler = "zdbsp_udmf_fast";
|
||||
|
||||
// ioanch: eternity
|
||||
engine = "eternity"; // override that so that DB2 uses the correct namespace
|
||||
|
||||
maplumpnames
|
||||
{
|
||||
include("UDMF_misc.cfg", "udmfmaplumpnames_begin");
|
||||
include("ZDoom_misc.cfg", "udmfmaplumpnames");
|
||||
include("UDMF_misc.cfg", "udmfmaplumpnames_end");
|
||||
}
|
||||
|
||||
// eternity
|
||||
universalfields
|
||||
{
|
||||
include("Eternity_misc.cfg", "universalfields");
|
||||
}
|
||||
|
||||
// When this is set to true, sectors with the same tag will light up when a line is highlighted
|
||||
linetagindicatesectors = false;
|
||||
|
||||
// Special linedefs
|
||||
include("ZDoom_misc.cfg", "speciallinedefs_udmf"); // same in EE
|
||||
|
||||
// Default flags for first new thing
|
||||
defaultthingflags
|
||||
{
|
||||
include("Eternity_misc.cfg", "defaultthingflags_udmf");
|
||||
}
|
||||
|
||||
// Door making
|
||||
include("Eternity_misc.cfg", "doormaking_udmf");
|
||||
|
||||
// Generalized actions
|
||||
generalizedlinedefs = false;
|
||||
|
||||
// SECTOR FLAGS
|
||||
sectorflags
|
||||
{
|
||||
include("Eternity_misc.cfg", "sectorflags_udmf");
|
||||
}
|
||||
|
||||
// DEFAULT SECTOR BRIGHTNESS LEVELS
|
||||
sectorbrightness
|
||||
{
|
||||
include("ZDoom_misc.cfg", "sectorbrightness");
|
||||
}
|
||||
|
||||
// SECTOR TYPES
|
||||
sectortypes
|
||||
{
|
||||
include("Eternity_misc.cfg", "sectors_udmf");
|
||||
}
|
||||
|
||||
// SECTOR RENSERSTYLES
|
||||
sectorrenderstyles
|
||||
{
|
||||
include("UDMF_misc.cfg", "sectorrenderstyles");
|
||||
}
|
||||
|
||||
// LINEDEF FLAGS
|
||||
linedefflags
|
||||
{
|
||||
include("Eternity_misc.cfg", "linedefflags_udmf");
|
||||
}
|
||||
|
||||
// LINEDEF ACTIVATIONS
|
||||
linedefactivations
|
||||
{
|
||||
include("Eternity_misc.cfg", "linedefactivations_udmf");
|
||||
}
|
||||
|
||||
//mxd. Linedef flags UDMF translation table
|
||||
// This is needed for copy/paste and prefabs to work properly
|
||||
// When the UDMF field name is prefixed with ! it is inverted
|
||||
linedefflagstranslation
|
||||
{
|
||||
include("Doom_misc.cfg", "linedefflagstranslation");
|
||||
include("Hexen_misc.cfg", "linedefflagstranslation");
|
||||
include("ZDoom_misc.cfg", "linedefflagstranslation");
|
||||
}
|
||||
|
||||
// LINEDEF RENSERSTYLES
|
||||
linedefrenderstyles
|
||||
{
|
||||
include("UDMF_misc.cfg", "linedefrenderstyles");
|
||||
}
|
||||
|
||||
//SIDEDEF FLAGS
|
||||
sidedefflags
|
||||
{
|
||||
include("Eternity_misc.cfg", "sidedefflags");
|
||||
}
|
||||
|
||||
// THING FLAGS
|
||||
thingflags
|
||||
{
|
||||
include("Eternity_misc.cfg", "thingflags_udmf");
|
||||
}
|
||||
|
||||
// THING RENSERSTYLES
|
||||
thingrenderstyles
|
||||
{
|
||||
include("UDMF_misc.cfg", "thingrenderstyles");
|
||||
}
|
||||
|
||||
// How to compare thing flags (for the stuck things error checker)
|
||||
thingflagscompare
|
||||
{
|
||||
include("Eternity_misc.cfg", "thingflagscompare_udmf");
|
||||
}
|
||||
|
||||
//mxd. Thing flags UDMF translation table
|
||||
// This is needed for copy/paste and prefabs to work properly
|
||||
// When the UDMF field name is prefixed with ! it is inverted
|
||||
thingflagstranslation
|
||||
{
|
||||
include("Doom_misc.cfg", "thingflagstranslation");
|
||||
include("Hexen_misc.cfg", "thingflagstranslation");
|
||||
include("ZDoom_misc.cfg", "thingflagstranslation");
|
||||
}
|
||||
|
||||
// Things flags masks
|
||||
include("Hexen_misc.cfg", "thingflagsmasks");
|
||||
|
||||
// LINEDEF TYPES
|
||||
linedeftypes
|
||||
{
|
||||
include("Hexen_linedefs.cfg");
|
||||
include("Eternity_linedefs.cfg", "udmf");
|
||||
}
|
||||
|
||||
}
|
14
Build/Configurations/Includes/Eternity_generalized.cfg
Normal file
14
Build/Configurations/Includes/Eternity_generalized.cfg
Normal 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";
|
||||
}
|
||||
}
|
2668
Build/Configurations/Includes/Eternity_linedefs.cfg
Normal file
2668
Build/Configurations/Includes/Eternity_linedefs.cfg
Normal file
File diff suppressed because it is too large
Load diff
4217
Build/Configurations/Includes/Eternity_misc.cfg
Normal file
4217
Build/Configurations/Includes/Eternity_misc.cfg
Normal file
File diff suppressed because it is too large
Load diff
124
Build/Configurations/Includes/Eternity_things.cfg
Normal file
124
Build/Configurations/Includes/Eternity_things.cfg
Normal 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";
|
||||
}
|
||||
}
|
|
@ -106,6 +106,8 @@ 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";
|
||||
|
|
|
@ -266,36 +266,54 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
// This checks if the number is relative
|
||||
public bool CheckIsRelative()
|
||||
{
|
||||
// Prefixed with ++ or --?
|
||||
return (combobox.Text.Trim().StartsWith("++") || combobox.Text.Trim().StartsWith("--"));
|
||||
// Prefixed with +++, ---, ++ or --?
|
||||
string str = combobox.Text.Trim();
|
||||
return (str.StartsWith("+++") || str.StartsWith("---") || str.StartsWith("++") || str.StartsWith("--"));
|
||||
}
|
||||
|
||||
// This returns the selected value
|
||||
public int GetResult(int original)
|
||||
public int GetResult(int original) { return GetResult(original, 0); } //mxd
|
||||
public int GetResult(int original, int offset)
|
||||
{
|
||||
int result;
|
||||
|
||||
// Strip prefixes
|
||||
string str = combobox.Text.Trim().ToLowerInvariant();
|
||||
str = str.TrimStart('+', '-');
|
||||
string numstr = str.TrimStart('+', '-'); //mxd
|
||||
|
||||
// Anything in the box?
|
||||
if(combobox.Text.Trim().Length > 0)
|
||||
if(numstr.Length > 0)
|
||||
{
|
||||
//mxd. Prefixed with +++?
|
||||
if(str.StartsWith("+++"))
|
||||
{
|
||||
// Add offset to number
|
||||
int num;
|
||||
if(!int.TryParse(numstr, out num)) num = 0;
|
||||
result = num + offset;
|
||||
}
|
||||
//mxd. Prefixed with ---?
|
||||
else if(str.StartsWith("---"))
|
||||
{
|
||||
// Subtract offset from number
|
||||
int num;
|
||||
if(!int.TryParse(numstr, out num)) num = 0;
|
||||
result = num - offset;
|
||||
}
|
||||
// Prefixed with ++?
|
||||
if(combobox.Text.Trim().StartsWith("++"))
|
||||
else if(str.StartsWith("++"))
|
||||
{
|
||||
// Add number to original
|
||||
int num;
|
||||
if(!int.TryParse(str, out num)) num = 0;
|
||||
if(!int.TryParse(numstr, out num)) num = 0;
|
||||
result = original + num;
|
||||
}
|
||||
// Prefixed with --?
|
||||
else if(combobox.Text.Trim().StartsWith("--"))
|
||||
else if(str.StartsWith("--"))
|
||||
{
|
||||
// Subtract number from original
|
||||
int num;
|
||||
if(!int.TryParse(str, out num)) num = 0;
|
||||
if(!int.TryParse(numstr, out num)) num = 0;
|
||||
result = original - num;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -133,7 +133,7 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
|
||||
#region ================== Apply
|
||||
|
||||
public void Apply(Linedef l)
|
||||
public void Apply(Linedef l, int offset)
|
||||
{
|
||||
//mxd. Script name/number handling
|
||||
// We can't rely on control visibility here, because all controlls will be invisible if ArgumentsControl is invisible
|
||||
|
@ -161,7 +161,7 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
|
||||
// Apply classic arg
|
||||
case ArgZeroMode.DEFAULT:
|
||||
l.Args[0] = arg0.GetResult(l.Args[0]);
|
||||
l.Args[0] = arg0.GetResult(l.Args[0], offset);
|
||||
if(l.Fields.ContainsKey("arg0str")) l.Fields.Remove("arg0str");
|
||||
break;
|
||||
|
||||
|
@ -169,13 +169,13 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
}
|
||||
|
||||
// Apply the rest of args
|
||||
l.Args[1] = arg1.GetResult(l.Args[1]);
|
||||
l.Args[2] = arg2.GetResult(l.Args[2]);
|
||||
l.Args[3] = arg3.GetResult(l.Args[3]);
|
||||
l.Args[4] = arg4.GetResult(l.Args[4]);
|
||||
l.Args[1] = arg1.GetResult(l.Args[1], offset);
|
||||
l.Args[2] = arg2.GetResult(l.Args[2], offset);
|
||||
l.Args[3] = arg3.GetResult(l.Args[3], offset);
|
||||
l.Args[4] = arg4.GetResult(l.Args[4], offset);
|
||||
}
|
||||
|
||||
public void Apply(Thing t)
|
||||
public void Apply(Thing t, int offset)
|
||||
{
|
||||
//mxd. Script name/number handling
|
||||
// We can't rely on control visibility here, because all controlls will be invisible if ArgumentsControl is invisible
|
||||
|
@ -203,7 +203,7 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
|
||||
// Apply classic arg
|
||||
case ArgZeroMode.DEFAULT:
|
||||
t.Args[0] = arg0.GetResult(t.Args[0]);
|
||||
t.Args[0] = arg0.GetResult(t.Args[0], offset);
|
||||
if(t.Fields.ContainsKey("arg0str")) t.Fields.Remove("arg0str");
|
||||
break;
|
||||
|
||||
|
@ -211,10 +211,10 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
}
|
||||
|
||||
// Apply the rest of args
|
||||
t.Args[1] = arg1.GetResult(t.Args[1]);
|
||||
t.Args[2] = arg2.GetResult(t.Args[2]);
|
||||
t.Args[3] = arg3.GetResult(t.Args[3]);
|
||||
t.Args[4] = arg4.GetResult(t.Args[4]);
|
||||
t.Args[1] = arg1.GetResult(t.Args[1], offset);
|
||||
t.Args[2] = arg2.GetResult(t.Args[2], offset);
|
||||
t.Args[3] = arg3.GetResult(t.Args[3], offset);
|
||||
t.Args[4] = arg4.GetResult(t.Args[4], offset);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -57,9 +57,14 @@ namespace CodeImp.DoomBuilder.Data
|
|||
if(lumpdata != null)
|
||||
{
|
||||
// Copy lump data to memory
|
||||
lumpdata.Seek(0, SeekOrigin.Begin);
|
||||
byte[] membytes = new byte[(int)lumpdata.Length];
|
||||
lumpdata.Read(membytes, 0, (int)lumpdata.Length);
|
||||
|
||||
lock(lumpdata) //mxd
|
||||
{
|
||||
lumpdata.Seek(0, SeekOrigin.Begin);
|
||||
lumpdata.Read(membytes, 0, (int)lumpdata.Length);
|
||||
}
|
||||
|
||||
MemoryStream mem = new MemoryStream(membytes);
|
||||
mem.Seek(0, SeekOrigin.Begin);
|
||||
|
||||
|
|
|
@ -151,9 +151,14 @@ namespace CodeImp.DoomBuilder.Data
|
|||
if(patchdata != null)
|
||||
{
|
||||
// Copy patch data to memory
|
||||
patchdata.Seek(0, SeekOrigin.Begin);
|
||||
byte[] membytes = new byte[(int)patchdata.Length];
|
||||
patchdata.Read(membytes, 0, (int)patchdata.Length);
|
||||
|
||||
lock(patchdata) //mxd
|
||||
{
|
||||
patchdata.Seek(0, SeekOrigin.Begin);
|
||||
patchdata.Read(membytes, 0, (int)patchdata.Length);
|
||||
}
|
||||
|
||||
MemoryStream mem = new MemoryStream(membytes);
|
||||
mem.Seek(0, SeekOrigin.Begin);
|
||||
|
||||
|
|
|
@ -70,9 +70,14 @@ namespace CodeImp.DoomBuilder.Data
|
|||
if(patchdata != null)
|
||||
{
|
||||
// Copy patch data to memory
|
||||
patchdata.Seek(0, SeekOrigin.Begin);
|
||||
byte[] membytes = new byte[(int)patchdata.Length];
|
||||
patchdata.Read(membytes, 0, (int)patchdata.Length);
|
||||
|
||||
lock(patchdata) //mxd
|
||||
{
|
||||
patchdata.Seek(0, SeekOrigin.Begin);
|
||||
patchdata.Read(membytes, 0, (int)patchdata.Length);
|
||||
}
|
||||
|
||||
MemoryStream mem = new MemoryStream(membytes);
|
||||
mem.Seek(0, SeekOrigin.Begin);
|
||||
|
||||
|
|
|
@ -84,9 +84,14 @@ namespace CodeImp.DoomBuilder.Data
|
|||
if(lumpdata != null)
|
||||
{
|
||||
// Copy lump data to memory
|
||||
lumpdata.Seek(0, SeekOrigin.Begin);
|
||||
byte[] membytes = new byte[(int)lumpdata.Length];
|
||||
lumpdata.Read(membytes, 0, (int)lumpdata.Length);
|
||||
|
||||
lock(lumpdata) //mxd
|
||||
{
|
||||
lumpdata.Seek(0, SeekOrigin.Begin);
|
||||
lumpdata.Read(membytes, 0, (int)lumpdata.Length);
|
||||
}
|
||||
|
||||
MemoryStream mem = new MemoryStream(membytes);
|
||||
mem.Seek(0, SeekOrigin.Begin);
|
||||
|
||||
|
|
|
@ -106,9 +106,14 @@ namespace CodeImp.DoomBuilder.Data
|
|||
if(patchdata != null)
|
||||
{
|
||||
// Copy patch data to memory
|
||||
patchdata.Seek(0, SeekOrigin.Begin);
|
||||
byte[] membytes = new byte[(int)patchdata.Length];
|
||||
patchdata.Read(membytes, 0, (int)patchdata.Length);
|
||||
|
||||
lock(patchdata) //mxd
|
||||
{
|
||||
patchdata.Seek(0, SeekOrigin.Begin);
|
||||
patchdata.Read(membytes, 0, (int)patchdata.Length);
|
||||
}
|
||||
|
||||
MemoryStream mem = new MemoryStream(membytes);
|
||||
mem.Seek(0, SeekOrigin.Begin);
|
||||
|
||||
|
|
|
@ -246,6 +246,7 @@ namespace CodeImp.DoomBuilder.Editing
|
|||
|
||||
// Processing events
|
||||
public virtual void OnProcess(long deltatime) { }
|
||||
public virtual void OnClockReset() { } //mxd
|
||||
|
||||
// Generic events
|
||||
public virtual void OnReloadResources() { }
|
||||
|
|
|
@ -22,5 +22,12 @@ namespace CodeImp.DoomBuilder
|
|||
{
|
||||
// This queries the system for the current time
|
||||
public static long CurrentTime { get { return Configuration.Timer.ElapsedMilliseconds; } }
|
||||
|
||||
//mxd. Timer needs to be reset from time to time (like, every 2 days of continuously running the editor) to prevent float precision degradation.
|
||||
internal static void Reset()
|
||||
{
|
||||
Configuration.Timer.Reset();
|
||||
Configuration.Timer.Start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1062,6 +1062,9 @@ namespace CodeImp.DoomBuilder
|
|||
// Ask the user to save changes (if any)
|
||||
if(AskSaveMap())
|
||||
{
|
||||
//mxd. Reset the clock...
|
||||
MainWindow.ResetClock();
|
||||
|
||||
// Open map options dialog
|
||||
MapOptionsForm optionswindow = new MapOptionsForm(newoptions, true);
|
||||
if(optionswindow.ShowDialog(mainwindow) == DialogResult.OK)
|
||||
|
@ -1457,6 +1460,9 @@ namespace CodeImp.DoomBuilder
|
|||
Cursor.Current = Cursors.Default;
|
||||
}
|
||||
|
||||
//mxd. Also reset the clock...
|
||||
MainWindow.ResetClock();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1541,6 +1547,10 @@ namespace CodeImp.DoomBuilder
|
|||
}
|
||||
|
||||
savefile.Dispose();
|
||||
|
||||
//mxd. Also reset the clock...
|
||||
MainWindow.ResetClock();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1606,6 +1616,10 @@ namespace CodeImp.DoomBuilder
|
|||
}
|
||||
|
||||
savefile.Dispose();
|
||||
|
||||
//mxd. Also reset the clock...
|
||||
MainWindow.ResetClock();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -336,8 +336,7 @@ namespace CodeImp.DoomBuilder.Rendering
|
|||
// Highlight
|
||||
if(General.Settings.AnimateVisualSelection)
|
||||
{
|
||||
long time = Clock.CurrentTime;
|
||||
highlightglow = (float)Math.Sin(time / 100.0f) * 0.1f + 0.4f;
|
||||
highlightglow = (float)Math.Sin(Clock.CurrentTime / 100.0f) * 0.1f + 0.4f;
|
||||
highlightglowinv = -highlightglow + 0.8f;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -652,7 +652,6 @@ namespace CodeImp.DoomBuilder.VisualModes
|
|||
return;
|
||||
}
|
||||
|
||||
long time = Clock.CurrentTime;
|
||||
float rMin = Math.Min(lightPrimaryRadius, lightSecondaryRadius);
|
||||
float rMax = Math.Max(lightPrimaryRadius, lightSecondaryRadius);
|
||||
float diff = rMax - rMin;
|
||||
|
@ -660,12 +659,12 @@ namespace CodeImp.DoomBuilder.VisualModes
|
|||
switch(lightType)
|
||||
{
|
||||
case DynamicLightType.PULSE:
|
||||
lightDelta = ((float)Math.Sin(time / (interval * 4.0f)) + 1.0f) / 2.0f; //just playing by the eye here... in [0.0 ... 1.0] interval
|
||||
lightDelta = ((float)Math.Sin(Clock.CurrentTime / (interval * 4.0f)) + 1.0f) / 2.0f; //just playing by the eye here... in [0.0 ... 1.0] interval
|
||||
lightRadius = rMin + diff * lightDelta;
|
||||
break;
|
||||
|
||||
case DynamicLightType.FLICKER:
|
||||
float fdelta = (float)Math.Sin(time / 0.1f); //just playing by the eye here...
|
||||
case DynamicLightType.FLICKER:
|
||||
float fdelta = (float)Math.Sin(Clock.CurrentTime / 0.1f); //just playing by the eye here...
|
||||
if(Math.Sign(fdelta) != Math.Sign(lightDelta))
|
||||
{
|
||||
lightDelta = fdelta;
|
||||
|
@ -674,7 +673,7 @@ namespace CodeImp.DoomBuilder.VisualModes
|
|||
break;
|
||||
|
||||
case DynamicLightType.RANDOM:
|
||||
float rdelta = (float)Math.Sin(time / (interval * 9.0f)); //just playing by the eye here...
|
||||
float rdelta = (float)Math.Sin(Clock.CurrentTime / (interval * 9.0f)); //just playing by the eye here...
|
||||
if(Math.Sign(rdelta) != Math.Sign(lightDelta))
|
||||
{
|
||||
lightRadius = rMin + (General.Random(0, (int) (diff * 10))) / 10.0f;
|
||||
|
|
|
@ -418,7 +418,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
}
|
||||
|
||||
// Go for all the lines
|
||||
int tagoffset = 0; //mxd
|
||||
int offset = 0; //mxd
|
||||
foreach(Linedef l in lines)
|
||||
{
|
||||
// Apply chosen activation flag
|
||||
|
@ -426,12 +426,11 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
l.Activate = (activation.SelectedItem as LinedefActivateInfo).Index;
|
||||
|
||||
// Action/tags
|
||||
oldtag = l.Tag;
|
||||
l.Tag = General.Clamp(tagSelector.GetSmartTag(l.Tag, tagoffset++), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd
|
||||
l.Tag = General.Clamp(tagSelector.GetSmartTag(l.Tag, offset), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd
|
||||
if(!action.Empty) l.Action = action.Value;
|
||||
|
||||
//mxd. Apply args
|
||||
argscontrol.Apply(l);
|
||||
argscontrol.Apply(l, offset);
|
||||
|
||||
// Remove front side?
|
||||
if((l.Front != null) && (frontside.CheckState == CheckState.Unchecked))
|
||||
|
@ -505,6 +504,9 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
l.Front.Sector.UpdateFloorSurface();
|
||||
l.Front.Sector.UpdateCeilingSurface();
|
||||
}
|
||||
|
||||
//mxd. Increase offset...
|
||||
offset++;
|
||||
}
|
||||
|
||||
// Update the used textures
|
||||
|
|
|
@ -671,7 +671,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
}
|
||||
|
||||
// Go for all the lines
|
||||
int tagoffset = 0; //mxd
|
||||
int offset = 0; //mxd
|
||||
foreach(Linedef l in lines)
|
||||
{
|
||||
// UDMF activations
|
||||
|
@ -685,12 +685,11 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
}
|
||||
}
|
||||
|
||||
// Action/tags
|
||||
// Action
|
||||
if(!action.Empty) l.Action = action.Value;
|
||||
tagsselector.ApplyTo(l, tagoffset++); //mxd
|
||||
|
||||
//mxd. Apply args
|
||||
argscontrol.Apply(l);
|
||||
argscontrol.Apply(l, offset++);
|
||||
|
||||
// Remove front side?
|
||||
if((l.Front != null) && (frontside.CheckState == CheckState.Unchecked))
|
||||
|
|
|
@ -4171,6 +4171,17 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
processingcount = 0;
|
||||
processor.Enabled = false;
|
||||
}
|
||||
|
||||
//mxd
|
||||
internal void ResetClock()
|
||||
{
|
||||
Clock.Reset();
|
||||
lastupdatetime = 0;
|
||||
|
||||
// Let the mode know...
|
||||
if(General.Editing.Mode != null)
|
||||
General.Editing.Mode.OnClockReset();
|
||||
}
|
||||
|
||||
// Processor event
|
||||
private void processor_Tick(object sender, EventArgs e)
|
||||
|
|
|
@ -410,7 +410,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
}
|
||||
|
||||
// Go for all the things
|
||||
int tagoffset = 0; //mxd
|
||||
int offset = 0; //mxd
|
||||
foreach(Thing t in things)
|
||||
{
|
||||
// Coordination
|
||||
|
@ -437,14 +437,17 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
}
|
||||
|
||||
// Action/tags
|
||||
t.Tag = General.Clamp(tagSelector.GetSmartTag(t.Tag, tagoffset++), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd
|
||||
t.Tag = General.Clamp(tagSelector.GetSmartTag(t.Tag, offset), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd
|
||||
if(!action.Empty) t.Action = action.Value;
|
||||
|
||||
//mxd. Apply args
|
||||
argscontrol.Apply(t);
|
||||
argscontrol.Apply(t, offset);
|
||||
|
||||
// Update settings
|
||||
t.UpdateConfiguration();
|
||||
|
||||
//mxd. Increase offset...
|
||||
offset++;
|
||||
}
|
||||
|
||||
// Set as defaults
|
||||
|
|
|
@ -459,7 +459,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
}
|
||||
|
||||
// Go for all the things
|
||||
int tagoffset = 0; //mxd
|
||||
int offset = 0; //mxd
|
||||
foreach(Thing t in things)
|
||||
{
|
||||
// Coordination
|
||||
|
@ -479,11 +479,11 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
if(t.Position.x != px || t.Position.y != py) t.Move(new Vector2D(px, py));
|
||||
|
||||
// Action/tags
|
||||
t.Tag = General.Clamp(tagSelector.GetSmartTag(t.Tag, tagoffset++), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd
|
||||
t.Tag = General.Clamp(tagSelector.GetSmartTag(t.Tag, offset), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd
|
||||
if(!action.Empty) t.Action = action.Value;
|
||||
|
||||
//mxd. Apply args
|
||||
argscontrol.Apply(t);
|
||||
argscontrol.Apply(t, offset);
|
||||
|
||||
//mxd. Custom fields
|
||||
fieldslist.Apply(t.Fields);
|
||||
|
@ -510,6 +510,9 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
|
||||
// Update settings
|
||||
t.UpdateConfiguration();
|
||||
|
||||
//mxd. Increase offset...
|
||||
offset++;
|
||||
}
|
||||
|
||||
// Set as defaults
|
||||
|
|
|
@ -507,8 +507,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
if(flashpolygon != null)
|
||||
{
|
||||
// Determine the intensity of the flash by time elapsed
|
||||
long curtime = Clock.CurrentTime;
|
||||
flashintensity = 1f - ((curtime - flashstarttime) / FLASH_DURATION);
|
||||
flashintensity = 1f - ((Clock.CurrentTime - flashstarttime) / FLASH_DURATION);
|
||||
if(flashintensity > 0.0f)
|
||||
{
|
||||
// Update vertices in polygon
|
||||
|
|
|
@ -1463,7 +1463,14 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
MouseEventArgs args = new MouseEventArgs(General.Interface.MouseButtons, 0, 0, 0, 0);
|
||||
OnMouseMove(args);
|
||||
}
|
||||
|
||||
|
||||
//mxd
|
||||
public override void OnClockReset()
|
||||
{
|
||||
base.OnClockReset();
|
||||
lastpicktime = 0;
|
||||
}
|
||||
|
||||
// This draws a frame
|
||||
public override void OnRedrawDisplay()
|
||||
{
|
||||
|
|
|
@ -168,6 +168,7 @@ namespace CodeImp.DoomBuilder.Plugins.NodesViewer
|
|||
NodesViewerMode newmode = new NodesViewerMode();
|
||||
General.Editing.ChangeMode(newmode);
|
||||
newmode.Form.showsegsvertices.Checked = this.showsegsvertices.Checked;
|
||||
newmode.Form.Location = this.Location; //mxd
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -59,7 +59,7 @@ namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer
|
|||
private Dictionary<Point, Tile> tiles = new Dictionary<Point, Tile>();
|
||||
|
||||
// Time when to do another update
|
||||
private DateTime nextupdate;
|
||||
private long nextupdate;
|
||||
|
||||
// Are we processing?
|
||||
private bool processingenabled;
|
||||
|
@ -323,7 +323,7 @@ namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer
|
|||
renderer.SetPresentation(p);
|
||||
|
||||
// Setup processing
|
||||
nextupdate = DateTime.Now + new TimeSpan(0, 0, 0, 0, 100);
|
||||
nextupdate = Clock.CurrentTime + 100;
|
||||
General.Interface.EnableProcessing();
|
||||
processingenabled = true;
|
||||
|
||||
|
@ -358,7 +358,7 @@ namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer
|
|||
RedrawAllTiles();
|
||||
|
||||
// Update the screen sooner
|
||||
nextupdate = DateTime.Now + new TimeSpan(0, 0, 0, 0, 100);
|
||||
nextupdate = Clock.CurrentTime + 100;
|
||||
}
|
||||
|
||||
// Draw the display
|
||||
|
@ -383,7 +383,7 @@ namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer
|
|||
public override void OnProcess(long deltatime)
|
||||
{
|
||||
base.OnProcess(deltatime);
|
||||
if(DateTime.Now >= nextupdate)
|
||||
if(Clock.CurrentTime >= nextupdate)
|
||||
{
|
||||
// Get the processed points from the VPO manager
|
||||
List<PointData> points = new List<PointData>();
|
||||
|
@ -405,7 +405,7 @@ namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer
|
|||
RedrawAllTiles();
|
||||
General.Interface.RedrawDisplay();
|
||||
|
||||
nextupdate = DateTime.Now + new TimeSpan(0, 0, 0, 0, 500);
|
||||
nextupdate = Clock.CurrentTime + 500;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue