Updated Scintilla control to ScintillaNET 3.5.6 (https://github.com/jacobslusser/ScintillaNET). Scintilla.dll is no longer used by GZDB and can be safely removed.

Changed, Script Editor: pressing Ctrl-S when fixed compilable script tab (like SCRIPTS tab) is selected now compiles the script.
Fixed, Error Logger: fixed slowdowns when adding lots of errors and "Errors and Warnings" window was opened.
Fixed, Script Editor: text caret was incorrectly positioned after selecting a function in the navigator dropdown.
Fixed, Script Editor: incorrect ACS configuration was used for SCRIPTS lump for maps in Hexen map format for ZDoom-based engines.
Internal, rendering: added more error reporing-related code to D3DShader.LoadEffect().
Updated ZDoom_DECORATE.cfg.
This commit is contained in:
MaxED 2016-01-27 14:08:15 +00:00
parent f9a7c22e03
commit 5fd02a6080
40 changed files with 1508 additions and 934 deletions

View file

@ -171,52 +171,6 @@ shortcuts
} }
colors
{
color0 = -16777216;
color1 = -11425537;
color2 = -1;
color3 = -4259937;
color4 = -3750145;
color5 = -21504;
color6 = -49152;
color7 = -128;
color8 = -12171706;
color9 = -13018769;
color10 = -16711681;
color11 = -24576;
color12 = -49152;
color13 = -1;
color14 = -4144960;
color15 = -16777216;
color16 = -6908266;
color17 = -16753716;
color18 = -11366857;
color19 = -6671822;
color20 = -9868951;
color21 = -12490271;
color22 = -14513374;
color23 = -14634326;
color24 = -5103070;
color25 = -7077677;
color26 = -4684277;
color27 = -4144960;
color28 = -8355712;
color29 = -16728065;
color30 = -13447886;
color31 = -5247250;
color32 = -40121;
color33 = -1146130;
color34 = -256;
color35 = -657931;
color36 = -18751;
color37 = -29696;
color38 = -4343957;
color39 = -2448096;
color40 = -65536;
}
mainwindow mainwindow
{ {
positionx = 150; positionx = 150;

Binary file not shown.

BIN
Build/ScintillaNET.3.5.dll Normal file

Binary file not shown.

View file

@ -16,6 +16,10 @@ insertcase = 0; // 0=Normal, 1=Lowercase, 2=Uppercase
lexer = 35; // CPP-style, case-insensitive lexer = 35; // CPP-style, case-insensitive
functionopen = "("; functionopen = "(";
functionclose = ")"; functionclose = ")";
codeblockopen = "{";
codeblockclose = "}";
arrayopen = "[";
arrayclose = "]";
argumentdelimiter = ","; argumentdelimiter = ",";
terminator = ";"; terminator = ";";
keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K"; keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K";

View file

@ -7,6 +7,8 @@ description = "GZDoom MODELDEF";
codepage = 0; codepage = 0;
extensions = "mdd"; extensions = "mdd";
casesensitive = false; casesensitive = false;
codeblockopen = "{";
codeblockclose = "}";
insertcase = 1; // 0=Normal, 1=Lowercase, 2=Uppercase insertcase = 1; // 0=Normal, 1=Lowercase, 2=Uppercase
lexer = 35; // CPP-style, case-insensitive lexer = 35; // CPP-style, case-insensitive
keywordhelp = "http://zdoom.org/wiki/MODELDEF"; keywordhelp = "http://zdoom.org/wiki/MODELDEF";

View file

@ -16,6 +16,10 @@ insertcase = 0; // 0=Normal, 1=Lowercase, 2=Uppercase
lexer = 35; // CPP-style, case-insensitive lexer = 35; // CPP-style, case-insensitive
functionopen = "("; functionopen = "(";
functionclose = ")"; functionclose = ")";
codeblockopen = "{";
codeblockclose = "}";
arrayopen = "[";
arrayclose = "]";
argumentdelimiter = ","; argumentdelimiter = ",";
terminator = ";"; terminator = ";";
keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K"; keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K";

View file

@ -16,6 +16,10 @@ insertcase = 0; // 0=Normal, 1=Lowercase, 2=Uppercase
lexer = 35; // CPP-style, case-insensitive lexer = 35; // CPP-style, case-insensitive
functionopen = "("; functionopen = "(";
functionclose = ")"; functionclose = ")";
codeblockopen = "{";
codeblockclose = "}";
arrayopen = "[";
arrayclose = "]";
argumentdelimiter = ","; argumentdelimiter = ",";
terminator = ";"; terminator = ";";
keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K"; keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K";
@ -24,12 +28,12 @@ scripttype = 1; //0 = unknown script, 1 = acc, 2 = modeldef, 3 = decorate
keywords keywords
{ {
#Define = "#Define identifier expression"; #define = "#Define identifier expression";
#EncryptStrings = "#EncryptStrings"; #encryptstrings = "#EncryptStrings";
#Import = "#Import"; #import = "#Import";
#Include = "#Include"; #include = "#Include";
#LibDefine = "#LibDefine identifier expression"; #libdefine = "#LibDefine identifier expression";
#Library = "#Library"; #library = "#Library";
#NoCompact = "#NoCompact"; #NoCompact = "#NoCompact";
#NoWadAuthor = "#NoWadAuthor"; #NoWadAuthor = "#NoWadAuthor";
#WadAuthor = "#WadAuthor"; #WadAuthor = "#WadAuthor";
@ -59,11 +63,11 @@ keywords
//BlueScore = "BlueScore()"; //BlueScore = "BlueScore()";
//BlueTeamCount = "BlueTeamCount()"; //BlueTeamCount = "BlueTeamCount()";
//BlueTeamScore = "BlueTeamScore()"; //BlueTeamScore = "BlueTeamScore()";
Bool = "Bool expression"; bool = "Bool expression";
Break = "Break"; break = "Break";
CancelFade = "void CancelFade(void)\nIf either FadeTo or FadeRange is currently in progress,\nCancelFade stops it and turns off the palette flash."; CancelFade = "void CancelFade(void)\nIf either FadeTo or FadeRange is currently in progress,\nCancelFade stops it and turns off the palette flash.";
CanRaiseActor = "bool CanRaiseActor(int tid)\nChecks to see if the actor or actors with the specified tid are viable for resurrection.\nIf tid is 0, the check is done on the activator of the script."; CanRaiseActor = "bool CanRaiseActor(int tid)\nChecks to see if the actor or actors with the specified tid are viable for resurrection.\nIf tid is 0, the check is done on the activator of the script.";
Case = "Case expression"; case = "Case expression";
Ceiling_CrushAndRaise = "Ceiling_CrushAndRaise(tag, speed, crush, crushmode)"; Ceiling_CrushAndRaise = "Ceiling_CrushAndRaise(tag, speed, crush, crushmode)";
Ceiling_CrushAndRaiseA = "Ceiling_CrushAndRaiseA(tag, dspeed, uspeed, crush, crushmode)"; Ceiling_CrushAndRaiseA = "Ceiling_CrushAndRaiseA(tag, dspeed, uspeed, crush, crushmode)";
Ceiling_CrushAndRaiseDist = "Ceiling_CrushAndRaiseDist(tag, dist, speed, damage, crushmode)"; Ceiling_CrushAndRaiseDist = "Ceiling_CrushAndRaiseDist(tag, dist, speed, damage, crushmode)";
@ -113,16 +117,16 @@ keywords
ClearInventory = "void ClearInventory(void)\nClears the player's inventory of weapons, ammo, armor and usable items."; ClearInventory = "void ClearInventory(void)\nClears the player's inventory of weapons, ammo, armor and usable items.";
ClearLineSpecial = "void ClearLineSpecial(void)\nClears the special of the line that activated the script."; ClearLineSpecial = "void ClearLineSpecial(void)\nClears the special of the line that activated the script.";
//ConsoleCommand = "void ConsoleCommand(str command)"; //ConsoleCommand = "void ConsoleCommand(str command)";
Const = "const"; const = "const";
Continue = "continue"; continue = "continue";
cos = "fixed Cos(int angle)"; Cos = "fixed Cos(int angle)";
CreateTranslation = "void CreateTranslation(int transnumber, a:b=c:d, ...)"; CreateTranslation = "void CreateTranslation(int transnumber, a:b=c:d, ...)";
DamageThing = "DamageThing(amount, mod)"; DamageThing = "DamageThing(amount, mod)";
Death = "Script expression Death"; DEATH = "Script expression Death";
Default = "default:"; default = "default:";
Delay = "void Delay(int tics)"; Delay = "void Delay(int tics)";
Disconnect = "Script expression Disconnect"; DISCONNECT = "Script expression Disconnect";
Do = "do"; do = "do";
Door_Animated = "Door_Animated(tag, speed, delay, lock)"; Door_Animated = "Door_Animated(tag, speed, delay, lock)";
Door_Close = "Door_Close(tag, speed, lighttag)"; Door_Close = "Door_Close(tag, speed, lighttag)";
Door_CloseWaitOpen = "Door_CloseWaitOpen(tag, speed, delay, lighttag)"; Door_CloseWaitOpen = "Door_CloseWaitOpen(tag, speed, delay, lighttag)";
@ -134,8 +138,8 @@ keywords
Elevator_LowerToNearest = "Elevator_LowerToNearest(tag, speed)"; Elevator_LowerToNearest = "Elevator_LowerToNearest(tag, speed)";
Elevator_MoveToFloor = "Elevator_MoveToFloor(tag, speed)"; Elevator_MoveToFloor = "Elevator_MoveToFloor(tag, speed)";
Elevator_RaiseToNearest = "Elevator_RaiseToNearest(tag, speed)"; Elevator_RaiseToNearest = "Elevator_RaiseToNearest(tag, speed)";
Else = "Else"; else = "Else";
Enter = "Script expression Enter"; ENTER = "Script expression Enter";
Exit_Normal = "Exit_Normal(pos)"; Exit_Normal = "Exit_Normal(pos)";
Exit_Secret = "Exit_Secret(pos)"; Exit_Secret = "Exit_Secret(pos)";
FadeRange = "void FadeRange(int red1, int green1, int blue1, fixed amount1, int red2, int green2, int blue2, fixed amount2, fixed seconds)\nSets the current flash to the first color set and then fades it to the second color set over the specified number of seconds."; FadeRange = "void FadeRange(int red1, int green1, int blue1, fixed amount1, int red2, int green2, int blue2, fixed amount2, fixed seconds)\nSets the current flash to the first color set and then fades it to the second color set over the specified number of seconds.";
@ -170,10 +174,10 @@ keywords
FloorAndCeiling_LowerByValue = "FloorAndCeiling_LowerByValue(tag, speed, height)"; FloorAndCeiling_LowerByValue = "FloorAndCeiling_LowerByValue(tag, speed, height)";
FloorAndCeiling_LowerRaise = "FloorAndCeiling_LowerRaise(tag, fspeed, cspeed, boomemu)"; FloorAndCeiling_LowerRaise = "FloorAndCeiling_LowerRaise(tag, fspeed, cspeed, boomemu)";
FloorAndCeiling_RaiseByValue = "FloorAndCeiling_RaiseByValue(tag, speed, height)"; FloorAndCeiling_RaiseByValue = "FloorAndCeiling_RaiseByValue(tag, speed, height)";
For = "for(initialization, condition, iteration)"; for = "for(initialization, condition, iteration)";
ForceField = "ForceField"; ForceField = "ForceField";
FS_Execute = "FS_Execute(script, side, keynum, message)"; FS_Execute = "FS_Execute(script, side, keynum, message)";
Function = "function void expression(void)"; function = "function void expression(void)";
GameSkill = "int GameSkill(void)"; GameSkill = "int GameSkill(void)";
GameType = "int GameType(void)"; GameType = "int GameType(void)";
Generic_Ceiling = "Generic_Ceiling(tag, speed, height, target, flag)"; Generic_Ceiling = "Generic_Ceiling(tag, speed, height, target, flag)";
@ -242,8 +246,8 @@ keywords
HealThing = "HealThing(amount)"; HealThing = "HealThing(amount)";
HudMessage = "void hudmessage(s:text; int type, int id, int color, fixed x, fixed y, fixed holdTime)"; HudMessage = "void hudmessage(s:text; int type, int id, int color, fixed x, fixed y, fixed holdTime)";
HudMessageBold = "void HudMessageBold(s:text; int type, int id, int color, fixed x, fixed y, fixed holdTime)"; HudMessageBold = "void HudMessageBold(s:text; int type, int id, int color, fixed x, fixed y, fixed holdTime)";
If = "if(expression)"; if = "if(expression)";
Int = "int expression"; int = "int expression";
//IsMultiplayer = "int IsMultiplayer(void)"; //IsMultiplayer = "int IsMultiplayer(void)";
//IsOneFlagCTF = "int IsOneFlagCTF(void)"; //IsOneFlagCTF = "int IsOneFlagCTF(void)";
IsPointerEqual = "bool IsPointerEqual(int ptr_select1, int ptr_select2[, int tid1[, int tid2]])"; IsPointerEqual = "bool IsPointerEqual(int ptr_select1, int ptr_select2[, int tid1[, int tid2]])";
@ -260,7 +264,7 @@ keywords
Light_Stop = "Light_Stop(tag)"; Light_Stop = "Light_Stop(tag)";
Light_Strobe = "Light_Strobe(tag, upper, lower, u-tics, l-tics)"; Light_Strobe = "Light_Strobe(tag, upper, lower, u-tics, l-tics)";
Light_StrobeDoom = "Light_StrobeDoom(tag, u-tics, l-tics)"; Light_StrobeDoom = "Light_StrobeDoom(tag, u-tics, l-tics)";
Lightning = "Script expression Lightning"; LIGHTNING = "Script expression Lightning";
LineAttack = "LineAttack(int tid, fixed angle, fixed pitch, int damage[, str pufftype = 'BulletPuff'[, str damagetype = 'None'[, fixed range = 2048[, int flags = 0[, int pufftid = 0]]]]])\nFires a hitscan attack. If tid is 0, the activator of the script is the source of the attack."; LineAttack = "LineAttack(int tid, fixed angle, fixed pitch, int damage[, str pufftype = 'BulletPuff'[, str damagetype = 'None'[, fixed range = 2048[, int flags = 0[, int pufftid = 0]]]]])\nFires a hitscan attack. If tid is 0, the activator of the script is the source of the attack.";
Line_AlignCeiling = "Line_AlignCeiling(lineid, side)"; Line_AlignCeiling = "Line_AlignCeiling(lineid, side)";
Line_AlignFloor = "Line_AlignFloor(lineid, side)"; Line_AlignFloor = "Line_AlignFloor(lineid, side)";
@ -273,11 +277,11 @@ keywords
Log = "void Log(type:expression)\nLog will print something in the log area of the screen (top left), as well as logging it to the console.\nIt uses the same parameter format as the Print function."; Log = "void Log(type:expression)\nLog will print something in the log area of the screen (top left), as well as logging it to the console.\nIt uses the same parameter format as the Print function.";
MorphActor = "int MorphActor(int tid, [str playerclass, [str monsterclass, [int duration, [int style, [str morphflash, [str unmorphflash]]]]]])"; MorphActor = "int MorphActor(int tid, [str playerclass, [str monsterclass, [int duration, [int style, [str morphflash, [str unmorphflash]]]]]])";
NamedScriptWait = "void NamedScriptWait(str script)"; NamedScriptWait = "void NamedScriptWait(str script)";
Net = "Script expression Net"; NET = "Script expression Net";
NoiseAlert = "NoiseAlert(target_tid, emiter_tid)"; NoiseAlert = "NoiseAlert(target_tid, emiter_tid)";
Open = "Script expression Open"; OPEN = "Script expression Open";
PickActor = "bool PickActor(int source_tid, fixed angle, fixed pitch, fixed distance, int tid[, int actorMask = MF_SHOOTABLE[, int wallMask = ML_BLOCKEVERYTHING | ML_BLOCKHITSCAN[, bool forcetid = false]]])"; PickActor = "bool PickActor(int source_tid, fixed angle, fixed pitch, fixed distance, int tid[, int actorMask = MF_SHOOTABLE[, int wallMask = ML_BLOCKEVERYTHING | ML_BLOCKHITSCAN[, bool forcetid = false]]])";
Pickup = "Script expression Pickup"; //PICKUP = "Script expression Pickup";
Pillar_Build = "Pillar_Build(tag, speed, height)"; Pillar_Build = "Pillar_Build(tag, speed, height)";
Pillar_BuildAndCrush = "Pillar_BuildAndCrush(tag, speed, height, crush, crushmode)"; Pillar_BuildAndCrush = "Pillar_BuildAndCrush(tag, speed, height, crush, crushmode)";
Pillar_Open = "Pillar_Open(tag, speed, fdist, cdist)"; Pillar_Open = "Pillar_Open(tag, speed, fdist, cdist)";
@ -324,10 +328,10 @@ keywords
Radius_Quake2 = "void Radius_Quake2(int tid, int intensity, int duration, int damrad, int tremrad, str sound)"; Radius_Quake2 = "void Radius_Quake2(int tid, int intensity, int duration, int damrad, int tremrad, str sound)";
Random = "int Random(int min, int max)"; Random = "int Random(int min, int max)";
ReplaceTextures = "void ReplaceTextures(str oldtexturename, str newtexturename[, int flags])\nReplaces all occurences of oldtexturename with newtexturename.\nNOT_ flags can be used."; ReplaceTextures = "void ReplaceTextures(str oldtexturename, str newtexturename[, int flags])\nReplaces all occurences of oldtexturename with newtexturename.\nNOT_ flags can be used.";
Respawn = "Script expression Respawn"; RESPAWN = "Script expression Respawn";
Restart = "Restart"; Restart = "Restart";
Return = "Return"; return = "Return";
Script = "Script expression"; script = "Script expression";
ScriptWait = "void ScriptWait(int script)"; ScriptWait = "void ScriptWait(int script)";
Scroll_Ceiling = "Scroll_Ceiling(tag, x-move, y-move, unused)"; Scroll_Ceiling = "Scroll_Ceiling(tag, x-move, y-move, unused)";
Scroll_Floor = "Scroll_Floor(tag, x-move, y-move, type)"; Scroll_Floor = "Scroll_Floor(tag, x-move, y-move, type)";
@ -400,7 +404,7 @@ keywords
SetUserCVarString = "bool SetUserCVarString(int playernumber, str cvar, str value)\nSets the console variable of a particular player.\nOnly mod-defined console variables through CVARINFO can be changed by using this function.\nReturns FALSE if cvar is invalid, it is not writable, or the player doesn't exist."; SetUserCVarString = "bool SetUserCVarString(int playernumber, str cvar, str value)\nSets the console variable of a particular player.\nOnly mod-defined console variables through CVARINFO can be changed by using this function.\nReturns FALSE if cvar is invalid, it is not writable, or the player doesn't exist.";
SetUserVariable = "void SetUserVariable(int tid, str name, int value)\nSets one of the affected actor's user variables."; SetUserVariable = "void SetUserVariable(int tid, str name, int value)\nSets one of the affected actor's user variables.";
SetWeapon = "bool SetWeapon(str weaponname)\nSets the player's current weapon to weaponname.\nReturns TRUE if the weapon was set successfully, and FALSE if not."; SetWeapon = "bool SetWeapon(str weaponname)\nSets the player's current weapon to weaponname.\nReturns TRUE if the weapon was set successfully, and FALSE if not.";
sin = "fixed Sin(int angle)"; Sin = "fixed Sin(int angle)";
SoundSequence = "void SoundSequence(str sndseq)\nPlays a sound sequence defined in SNDSEQ lump."; SoundSequence = "void SoundSequence(str sndseq)\nPlays a sound sequence defined in SNDSEQ lump.";
SoundSequenceOnActor = "void SoundSequenceOnActor(int tid, str sndseq)\nPlays a sound sequence defined in SNDSEQ lump."; SoundSequenceOnActor = "void SoundSequenceOnActor(int tid, str sndseq)\nPlays a sound sequence defined in SNDSEQ lump.";
SoundSequenceOnPolyObj = "void SoundSequenceOnPolyobj(int polynum, str sndseq)\nPlays a sound sequence defined in SNDSEQ lump."; SoundSequenceOnPolyObj = "void SoundSequenceOnPolyobj(int polynum, str sndseq)\nPlays a sound sequence defined in SNDSEQ lump.";
@ -435,7 +439,7 @@ keywords
StrRight = "str StrRight(str string, int length)\nCreates a new string containing the length last characters of string.\nIf string does not exist, an empty string is returned.\nIf string is shorter than length characters, the entire string is returned."; StrRight = "str StrRight(str string, int length)\nCreates a new string containing the length last characters of string.\nIf string does not exist, an empty string is returned.\nIf string is shorter than length characters, the entire string is returned.";
Suspend = "Suspend"; Suspend = "Suspend";
SwapActorTeleFog = "int SwapActorTeleFog(int tid)"; SwapActorTeleFog = "int SwapActorTeleFog(int tid)";
Switch = "Switch(expression)"; switch = "Switch(expression)";
TagWait = "void TagWait(int tag)"; TagWait = "void TagWait(int tag)";
TakeActorInventory = "void TakeActorInventory(int tid, str inventory_item, int amount)\nThis function will take the amount of items from the specified actor.\nTakeActorInventory can remove items that are flagged as undroppable."; TakeActorInventory = "void TakeActorInventory(int tid, str inventory_item, int amount)\nThis function will take the amount of items from the specified actor.\nTakeActorInventory can remove items that are flagged as undroppable.";
TakeInventory = "void TakeInventory(str inventory_item, int amount)\nThis function will take the number of items specified from the activator.\nTakeInventory can remove items that are flagged as undroppable."; TakeInventory = "void TakeInventory(str inventory_item, int amount)\nThis function will take the number of items specified from the activator.\nTakeInventory can remove items that are flagged as undroppable.";
@ -482,19 +486,19 @@ keywords
Timer = "int Timer(void)"; Timer = "int Timer(void)";
TranslucentLine = "TranslucentLine(lineid, amount, additive, moreflags)"; TranslucentLine = "TranslucentLine(lineid, amount, additive, moreflags)";
UniqueTID = "int UniqueTID([int tid[, int limit]])"; UniqueTID = "int UniqueTID([int tid[, int limit]])";
Unloading = "Script expression Unloading"; UNLOADING = "Script expression Unloading";
UnMorphActor = "int UnMorphActor(int tid[, bool force])"; UnMorphActor = "int UnMorphActor(int tid[, bool force])";
Until = "Until(expression)"; until = "Until(expression)";
UseActorInventory = "int UseActorInventory(int tid, str classname)\nForces the actor(s) with the specified tid to use an item from their inventory, if they have one.\nReturns TRUE if the item was used successfully."; UseActorInventory = "int UseActorInventory(int tid, str classname)\nForces the actor(s) with the specified tid to use an item from their inventory, if they have one.\nReturns TRUE if the item was used successfully.";
UseInventory = "int UseInventory(str classname)\nForces the activator to use the specified inventory item, if he has it.\nReturns TRUE if the item was used successfully."; UseInventory = "int UseInventory(str classname)\nForces the activator to use the specified inventory item, if he has it.\nReturns TRUE if the item was used successfully.";
UsePuzzleItem = "UsePuzzleItem(item, script, arg1, arg2, arg3)"; UsePuzzleItem = "UsePuzzleItem(item, script, arg1, arg2, arg3)";
VectorAngle = "fixed VectorAngle(int x, int y)"; VectorAngle = "fixed VectorAngle(int x, int y)";
VectorLength = "int VectorLength(int x, int y)"; VectorLength = "int VectorLength(int x, int y)";
Void = "void"; void = "void";
Warp = "bool Warp(int destinationtid, fixed xofs, fixed yofs, fixed zofs, int angle, int flags[, str success_state[, bool exactstate[, fixed heightoffset]]])"; Warp = "bool Warp(int destinationtid, fixed xofs, fixed yofs, fixed zofs, int angle, int flags[, str success_state[, bool exactstate[, fixed heightoffset]]])";
While = "while(expression)"; while = "while(expression)";
WhiteReturn = "Script expression WhiteReturn"; //WHITERETURN = "Script expression WhiteReturn";
World = "World Int expression:identifier"; world = "World Int expression:identifier";
} }
constants constants

View file

@ -11,6 +11,10 @@ insertcase = 0; // 0=Normal, 1=Lowercase, 2=Uppercase
lexer = 35; lexer = 35;
functionopen = "("; functionopen = "(";
functionclose = ")"; functionclose = ")";
codeblockopen = "{";
codeblockclose = "}";
arrayopen = "[";
arrayclose = "]";
argumentdelimiter = ","; argumentdelimiter = ",";
terminator = ";"; terminator = ";";
keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K"; keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K";
@ -127,7 +131,7 @@ keywords
A_CheckFloor = "A_CheckFloor(int offset OR str state)"; A_CheckFloor = "A_CheckFloor(int offset OR str state)";
A_CheckFlag = "A_CheckFlag(str flagname, state label[, int check_pointer = AAPTR_DEFAULT])"; A_CheckFlag = "A_CheckFlag(str flagname, state label[, int check_pointer = AAPTR_DEFAULT])";
A_CheckLOF = "A_CheckLOF(state jump[, int flags = 0[, float range = 0.0[, float minrange = 0.0[, float angle = 0.0[, float pitch = 0.0[, float offsetheight = 0.0[, float offsetwidth = 0.0[, int ptr_target = AAPTR_DEFAULT]]]]]]]])"; A_CheckLOF = "A_CheckLOF(state jump[, int flags = 0[, float range = 0.0[, float minrange = 0.0[, float angle = 0.0[, float pitch = 0.0[, float offsetheight = 0.0[, float offsetwidth = 0.0[, int ptr_target = AAPTR_DEFAULT]]]]]]]])";
A_CheckProximity = "A_CheckProximity(str \"jump\", str classname, float distance[, int count = 1[, int flags = 0[, int pointer]]])"; A_CheckProximity = "A_CheckProximity(str jump, str classname, float distance[, int count = 1[, int flags = 0[, int pointer = AAPTR_DEFAULT]]])";
A_CheckRange = "A_CheckRange(float distance, int offset OR str state[, bool 2d_check])"; A_CheckRange = "A_CheckRange(float distance, int offset OR str state[, bool 2d_check])";
A_CheckSight = "A_CheckSight(int offset OR str state)"; A_CheckSight = "A_CheckSight(int offset OR str state)";
A_CheckSightOrRange = "A_CheckSightOrRange(float distance, int offset OR str state[, bool 2d_check])"; A_CheckSightOrRange = "A_CheckSightOrRange(float distance, int offset OR str state[, bool 2d_check])";
@ -1204,6 +1208,13 @@ constants
CPXF_DEADONLY; CPXF_DEADONLY;
CPXF_LESSOREQUAL; CPXF_LESSOREQUAL;
CPXF_EXACT; CPXF_EXACT;
CPXF_CHECKSIGHT;
CPXF_SETTARGET;
CPXF_SETMASTER;
CPXF_SETTRACER;
CPXF_FARTHEST;
CPXF_CLOSEST;
CPXF_SETONPTR;
//A_FaceTraget/Master/Tracer flags //A_FaceTraget/Master/Tracer flags
FAF_BOTTOM; FAF_BOTTOM;
FAF_MIDDLE; FAF_MIDDLE;

View file

@ -9,6 +9,8 @@ extensions = "txt";
casesensitive = false; casesensitive = false;
insertcase = 1; // 0=Normal, 1=Lowercase, 2=Uppercase insertcase = 1; // 0=Normal, 1=Lowercase, 2=Uppercase
lexer = 35; // CPP-style, case-insensitive lexer = 35; // CPP-style, case-insensitive
codeblockopen = "{";
codeblockclose = "}";
terminator = ";"; terminator = ";";
keywords keywords

View file

@ -16,6 +16,10 @@ insertcase = 0; // 0=Normal, 1=Lowercase, 2=Uppercase
lexer = 35; // CPP-style, case-insensitive lexer = 35; // CPP-style, case-insensitive
functionopen = "("; functionopen = "(";
functionclose = ")"; functionclose = ")";
codeblockopen = "{";
codeblockclose = "}";
arrayopen = "[";
arrayclose = "]";
argumentdelimiter = ","; argumentdelimiter = ",";
terminator = ";"; terminator = ";";
keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K"; keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K";

View file

@ -0,0 +1,3 @@
switch ([EP])[LB]{
}

View file

@ -44,7 +44,7 @@ Source: Updater.ini; DestDir: {app}; Flags: ignoreversion
Source: Refmanual.chm; DestDir: {app}; Flags: ignoreversion Source: Refmanual.chm; DestDir: {app}; Flags: ignoreversion
Source: DevIL.dll; DestDir: {app}; Flags: ignoreversion Source: DevIL.dll; DestDir: {app}; Flags: ignoreversion
Source: SharpCompress.3.5.dll; DestDir: {app}; Flags: ignoreversion Source: SharpCompress.3.5.dll; DestDir: {app}; Flags: ignoreversion
Source: Scintilla.dll; DestDir: {app}; Flags: ignoreversion Source: ScintillaNET.3.5.dll; DestDir: {app}; Flags: ignoreversion
Source: SlimDX.dll; DestDir: {app}; Flags: ignoreversion Source: SlimDX.dll; DestDir: {app}; Flags: ignoreversion
Source: GPL.txt; DestDir: {app}; Flags: ignoreversion Source: GPL.txt; DestDir: {app}; Flags: ignoreversion
Source: Compilers\*; DestDir: {app}\Compilers; Flags: ignoreversion recursesubdirs Source: Compilers\*; DestDir: {app}\Compilers; Flags: ignoreversion recursesubdirs

View file

@ -122,19 +122,9 @@
<Compile Include="Controls\ArgumentBox.Designer.cs"> <Compile Include="Controls\ArgumentBox.Designer.cs">
<DependentUpon>ArgumentBox.cs</DependentUpon> <DependentUpon>ArgumentBox.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="Controls\ScriptEditorControl.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\ScriptEditorControl.Designer.cs">
<DependentUpon>ScriptEditorControl.cs</DependentUpon>
</Compile>
<Compile Include="Controls\ScriptDocumentTab.cs"> <Compile Include="Controls\ScriptDocumentTab.cs">
<SubType>Component</SubType> <SubType>Component</SubType>
</Compile> </Compile>
<Compile Include="Controls\ScintillaConstants.cs" />
<Compile Include="Controls\ScintillaControl.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\ScriptEditorPanel.cs"> <Compile Include="Controls\ScriptEditorPanel.cs">
<SubType>UserControl</SubType> <SubType>UserControl</SubType>
</Compile> </Compile>
@ -534,6 +524,9 @@
</ItemGroup> </ItemGroup>
<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="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">
<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.2.0, Culture=neutral, processorArchitecture=x86">
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
@ -698,7 +691,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="app.manifest" /> <None Include="app.manifest" />
<None Include="Resources\ScriptSnippet.xpm" /> <EmbeddedResource Include="Controls\ScriptEditorControl.resx">
<DependentUpon>ScriptEditorControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Resources\SkySphere.md3" /> <EmbeddedResource Include="Resources\SkySphere.md3" />
<None Include="Resources\ThingStatistics.png" /> <None Include="Resources\ThingStatistics.png" />
<None Include="Resources\Copy.png" /> <None Include="Resources\Copy.png" />
@ -766,6 +761,12 @@
<Compile Include="Controls\PasteOptionsControl.Designer.cs"> <Compile Include="Controls\PasteOptionsControl.Designer.cs">
<DependentUpon>PasteOptionsControl.cs</DependentUpon> <DependentUpon>PasteOptionsControl.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="Controls\ScriptEditorControl.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\ScriptEditorControl.designer.cs">
<DependentUpon>ScriptEditorControl.cs</DependentUpon>
</Compile>
<Compile Include="Controls\SectorSlopeControl.cs"> <Compile Include="Controls\SectorSlopeControl.cs">
<SubType>UserControl</SubType> <SubType>UserControl</SubType>
</Compile> </Compile>
@ -1128,6 +1129,13 @@
<None Include="Resources\ModelDisabled.png" /> <None Include="Resources\ModelDisabled.png" />
<None Include="Resources\ModelFiltered.png" /> <None Include="Resources\ModelFiltered.png" />
<Content Include="Resources\Model_selected.png" /> <Content Include="Resources\Model_selected.png" />
<None Include="Resources\TextWhitespace.png" />
<None Include="Resources\TextIndent.png" />
<None Include="Resources\TextUnindent.png" />
<None Include="Resources\ScriptSnippet.png" />
<None Include="Resources\ScriptKeyword.png" />
<None Include="Resources\ScriptError.png" />
<None Include="Resources\ScriptConstant.png" />
<None Include="Resources\Sky.png" /> <None Include="Resources\Sky.png" />
<None Include="Resources\Update.png" /> <None Include="Resources\Update.png" />
<None Include="Resources\Reload.png" /> <None Include="Resources\Reload.png" />
@ -1201,9 +1209,6 @@
<Compile Include="Windows\PreferencesController.cs" /> <Compile Include="Windows\PreferencesController.cs" />
<None Include="Resources\Script2.png" /> <None Include="Resources\Script2.png" />
<None Include="Resources\ScriptCompile.png" /> <None Include="Resources\ScriptCompile.png" />
<None Include="Resources\ScriptConstant.xpm" />
<None Include="Resources\ScriptError.xpm" />
<None Include="Resources\ScriptKeyword.xpm" />
<None Include="Resources\ScriptPalette.png" /> <None Include="Resources\ScriptPalette.png" />
<None Include="Resources\SaveAll.png" /> <None Include="Resources\SaveAll.png" />
<None Include="Resources\SaveScript.png" /> <None Include="Resources\SaveScript.png" />
@ -1219,10 +1224,6 @@
<None Include="Resources\ViewTextureFloor.png" /> <None Include="Resources\ViewTextureFloor.png" />
<None Include="Resources\ViewNormal.png" /> <None Include="Resources\ViewNormal.png" />
<None Include="Resources\KnownTextureSet.png" /> <None Include="Resources\KnownTextureSet.png" />
<EmbeddedResource Include="Controls\ScriptEditorControl.resx">
<SubType>Designer</SubType>
<DependentUpon>ScriptEditorControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Resources\Hourglass3D.png" /> <EmbeddedResource Include="Resources\Hourglass3D.png" />
<None Include="Resources\Failed.png" /> <None Include="Resources\Failed.png" />
<None Include="Resources\Grid2_arrowup.png" /> <None Include="Resources\Grid2_arrowup.png" />

View file

@ -66,6 +66,7 @@ namespace CodeImp.DoomBuilder.Config
private bool scriptfontbold; private bool scriptfontbold;
private bool scriptontop; private bool scriptontop;
private bool scriptautoindent; private bool scriptautoindent;
private bool scriptusetabs; //mxd
private bool snippetsallmanstyle; //mxd private bool snippetsallmanstyle; //mxd
private string screenshotspath; //mxd private string screenshotspath; //mxd
private int scripttabwidth; private int scripttabwidth;
@ -162,6 +163,7 @@ namespace CodeImp.DoomBuilder.Config
public int ZoomFactor { get { return zoomfactor; } internal set { zoomfactor = value; } } public int ZoomFactor { get { return zoomfactor; } internal set { zoomfactor = value; } }
public bool ShowErrorsWindow { get { return showerrorswindow; } internal set { showerrorswindow = value; } } public bool ShowErrorsWindow { get { return showerrorswindow; } internal set { showerrorswindow = value; } }
public bool AnimateVisualSelection { get { return animatevisualselection; } internal set { animatevisualselection = value; } } public bool AnimateVisualSelection { get { return animatevisualselection; } internal set { animatevisualselection = value; } }
public bool ScriptUseTabs { get { return scriptusetabs; } internal set { scriptusetabs = value; } } //mxd
public int ScriptTabWidth { get { return scripttabwidth; } internal set { scripttabwidth = value; } } public int ScriptTabWidth { get { return scripttabwidth; } internal set { scripttabwidth = value; } }
public bool ScriptAutoIndent { get { return scriptautoindent; } internal set { scriptautoindent = value; } } public bool ScriptAutoIndent { get { return scriptautoindent; } internal set { scriptautoindent = value; } }
public bool SnippetsAllmanStyle { get { return snippetsallmanstyle; } internal set { snippetsallmanstyle = value; } } //mxd public bool SnippetsAllmanStyle { get { return snippetsallmanstyle; } internal set { snippetsallmanstyle = value; } } //mxd
@ -268,13 +270,14 @@ namespace CodeImp.DoomBuilder.Config
movespeed = cfg.ReadSetting("movespeed", 100); movespeed = cfg.ReadSetting("movespeed", 100);
viewdistance = cfg.ReadSetting("viewdistance", 3000.0f); viewdistance = cfg.ReadSetting("viewdistance", 3000.0f);
invertyaxis = cfg.ReadSetting("invertyaxis", false); invertyaxis = cfg.ReadSetting("invertyaxis", false);
scriptfontname = cfg.ReadSetting("scriptfontname", "Lucida Console"); scriptfontname = cfg.ReadSetting("scriptfontname", "Courier New");
scriptfontsize = cfg.ReadSetting("scriptfontsize", 10); scriptfontsize = cfg.ReadSetting("scriptfontsize", 10);
scriptfontbold = cfg.ReadSetting("scriptfontbold", false); scriptfontbold = cfg.ReadSetting("scriptfontbold", false);
scriptautoindent = cfg.ReadSetting("scriptautoindent", true); scriptautoindent = cfg.ReadSetting("scriptautoindent", true);
snippetsallmanstyle = cfg.ReadSetting("snippetsallmanstyle", false); //mxd snippetsallmanstyle = cfg.ReadSetting("snippetsallmanstyle", false); //mxd
screenshotspath = cfg.ReadSetting("screenshotspath", General.DefaultScreenshotsPath); //mxd screenshotspath = cfg.ReadSetting("screenshotspath", General.DefaultScreenshotsPath); //mxd
scriptontop = cfg.ReadSetting("scriptontop", true); scriptontop = cfg.ReadSetting("scriptontop", true);
scriptusetabs = cfg.ReadSetting("scriptusetabs", true); //mxd
scripttabwidth = cfg.ReadSetting("scripttabwidth", 4); scripttabwidth = cfg.ReadSetting("scripttabwidth", 4);
previewimagesize = cfg.ReadSetting("previewimagesize", 1); previewimagesize = cfg.ReadSetting("previewimagesize", 1);
autoscrollspeed = cfg.ReadSetting("autoscrollspeed", 0); autoscrollspeed = cfg.ReadSetting("autoscrollspeed", 0);
@ -368,6 +371,7 @@ namespace CodeImp.DoomBuilder.Config
cfg.WriteSetting("scriptfontsize", scriptfontsize); cfg.WriteSetting("scriptfontsize", scriptfontsize);
cfg.WriteSetting("scriptfontbold", scriptfontbold); cfg.WriteSetting("scriptfontbold", scriptfontbold);
cfg.WriteSetting("scriptontop", scriptontop); cfg.WriteSetting("scriptontop", scriptontop);
cfg.WriteSetting("scriptusetabs", scriptusetabs); //mxd
cfg.WriteSetting("scripttabwidth", scripttabwidth); cfg.WriteSetting("scripttabwidth", scripttabwidth);
cfg.WriteSetting("scriptautoindent", scriptautoindent); cfg.WriteSetting("scriptautoindent", scriptautoindent);
cfg.WriteSetting("snippetsallmanstyle", snippetsallmanstyle); //mxd cfg.WriteSetting("snippetsallmanstyle", snippetsallmanstyle); //mxd

View file

@ -21,6 +21,7 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using CodeImp.DoomBuilder.IO; using CodeImp.DoomBuilder.IO;
using ScintillaNET;
#endregion #endregion
@ -54,21 +55,27 @@ namespace CodeImp.DoomBuilder.Config
private readonly string[] extensions; private readonly string[] extensions;
private readonly bool casesensitive; private readonly bool casesensitive;
private readonly int insertcase; private readonly int insertcase;
private readonly int lexer; private readonly Lexer lexer;
private readonly string keywordhelp; private readonly string keywordhelp;
private readonly string functionopen; private readonly string functionopen;
private readonly string functionclose; private readonly string functionclose;
private readonly string codeblockopen; //mxd
private readonly string codeblockclose; //mxd
private readonly string arrayopen; //mxd
private readonly string arrayclose; //mxd
private readonly string argumentdelimiter; private readonly string argumentdelimiter;
private readonly string terminator; private readonly string terminator;
private readonly string functionregex;
private readonly ScriptType scripttype; //mxd private readonly ScriptType scripttype; //mxd
// Collections // Collections
private readonly Dictionary<string, string> keywords; private readonly Dictionary<string, string> keywords;
private readonly Dictionary<string, string> lowerkeywords; private readonly Dictionary<string, string> lowerkeywords;
private readonly List<string> keywordkeyssorted; //mxd
private readonly List<string> constants; private readonly List<string> constants;
private readonly Dictionary<string, string> lowerconstants; private readonly Dictionary<string, string> lowerconstants;
private readonly Dictionary<string, string[]> snippets; //mxd private readonly Dictionary<string, string[]> snippets; //mxd
private readonly HashSet<string> snippetkeyssorted; //mxd
private readonly HashSet<char> braces; //mxd
#endregion #endregion
@ -85,19 +92,23 @@ namespace CodeImp.DoomBuilder.Config
public string[] Extensions { get { return extensions; } } public string[] Extensions { get { return extensions; } }
public bool CaseSensitive { get { return casesensitive; } } public bool CaseSensitive { get { return casesensitive; } }
public int InsertCase { get { return insertcase; } } public int InsertCase { get { return insertcase; } }
public int Lexer { get { return lexer; } } public Lexer Lexer { get { return lexer; } }
public string KeywordHelp { get { return keywordhelp; } } public string KeywordHelp { get { return keywordhelp; } }
public string FunctionOpen { get { return functionopen; } } public string FunctionOpen { get { return functionopen; } }
public string FunctionClose { get { return functionclose; } } public string FunctionClose { get { return functionclose; } }
public string CodeBlockOpen { get { return codeblockopen; } } //mxd
public string CodeBlockClose { get { return codeblockclose; } } //mxd
public string ArrayOpen { get { return arrayopen; } } //mxd
public string ArrayClose { get { return arrayclose; } } //mxd
public string ArgumentDelimiter { get { return argumentdelimiter; } } public string ArgumentDelimiter { get { return argumentdelimiter; } }
public string Terminator { get { return terminator; } } public string Terminator { get { return terminator; } }
public string FunctionRegEx { get { return functionregex; } }
public ScriptType ScriptType { get { return scripttype; } } //mxd public ScriptType ScriptType { get { return scripttype; } } //mxd
public Dictionary<string, string[]> Snippets { get { return snippets; } } //mxd
// Collections // Collections
public ICollection<string> Keywords { get { return keywords.Keys; } } public ICollection<string> Keywords { get { return keywordkeyssorted; } }
public ICollection<string> Constants { get { return constants; } } public ICollection<string> Constants { get { return constants; } }
public ICollection<string> Snippets { get { return snippetkeyssorted; } }
public HashSet<char> BraceChars { get { return braces; } } //mxd
#endregion #endregion
@ -112,9 +123,13 @@ namespace CodeImp.DoomBuilder.Config
this.constants = new List<string>(); this.constants = new List<string>();
this.lowerkeywords = new Dictionary<string, string>(StringComparer.Ordinal); this.lowerkeywords = new Dictionary<string, string>(StringComparer.Ordinal);
this.lowerconstants = new Dictionary<string, string>(StringComparer.Ordinal); this.lowerconstants = new Dictionary<string, string>(StringComparer.Ordinal);
this.keywordkeyssorted = new List<string>(); //mxd
this.snippets = new Dictionary<string, string[]>(StringComparer.OrdinalIgnoreCase); //mxd
this.snippetkeyssorted = new HashSet<string>(); //mxd
this.braces = new HashSet<char>(); //mxd
// Settings // Settings
lexer = 1; lexer = Lexer.Null;
casesensitive = false; casesensitive = false;
codepage = 65001; codepage = 65001;
parameters = ""; parameters = "";
@ -123,13 +138,15 @@ namespace CodeImp.DoomBuilder.Config
keywordhelp = ""; keywordhelp = "";
functionopen = ""; functionopen = "";
functionclose = ""; functionclose = "";
codeblockopen = ""; //mxd
codeblockclose = ""; //mxd
arrayopen = ""; //mxd
arrayclose = ""; //mxd
argumentdelimiter = ""; argumentdelimiter = "";
terminator = ""; terminator = "";
functionregex = "";
description = "Plain text"; description = "Plain text";
scripttype = ScriptType.UNKNOWN; //mxd scripttype = ScriptType.UNKNOWN; //mxd
extensions = new[] { "txt" }; extensions = new[] { "txt" };
snippets = new Dictionary<string, string[]>(StringComparer.Ordinal); //mxd
} }
// Constructor // Constructor
@ -140,7 +157,10 @@ namespace CodeImp.DoomBuilder.Config
this.constants = new List<string>(); this.constants = new List<string>();
this.lowerkeywords = new Dictionary<string, string>(StringComparer.Ordinal); this.lowerkeywords = new Dictionary<string, string>(StringComparer.Ordinal);
this.lowerconstants = new Dictionary<string, string>(StringComparer.Ordinal); this.lowerconstants = new Dictionary<string, string>(StringComparer.Ordinal);
this.snippets = new Dictionary<string, string[]>(StringComparer.Ordinal); //mxd this.keywordkeyssorted = new List<string>(); //mxd
this.snippets = new Dictionary<string, string[]>(StringComparer.OrdinalIgnoreCase); //mxd
this.snippetkeyssorted = new HashSet<string>(); //mxd
this.braces = new HashSet<char>(); //mxd
// Read settings // Read settings
description = cfg.ReadSetting("description", "Untitled script"); description = cfg.ReadSetting("description", "Untitled script");
@ -151,14 +171,25 @@ namespace CodeImp.DoomBuilder.Config
resultlump = cfg.ReadSetting("resultlump", ""); resultlump = cfg.ReadSetting("resultlump", "");
casesensitive = cfg.ReadSetting("casesensitive", true); casesensitive = cfg.ReadSetting("casesensitive", true);
insertcase = cfg.ReadSetting("insertcase", 0); insertcase = cfg.ReadSetting("insertcase", 0);
lexer = cfg.ReadSetting("lexer", 0); lexer = (Lexer)cfg.ReadSetting("lexer", (int)Lexer.Container);
keywordhelp = cfg.ReadSetting("keywordhelp", ""); keywordhelp = cfg.ReadSetting("keywordhelp", "");
functionopen = cfg.ReadSetting("functionopen", ""); functionopen = cfg.ReadSetting("functionopen", "");
functionclose = cfg.ReadSetting("functionclose", ""); functionclose = cfg.ReadSetting("functionclose", "");
codeblockopen = cfg.ReadSetting("codeblockopen", ""); //mxd
codeblockclose = cfg.ReadSetting("codeblockclose", ""); //mxd
arrayopen = cfg.ReadSetting("arrayopen", ""); //mxd
arrayclose = cfg.ReadSetting("arrayclose", ""); //mxd
argumentdelimiter = cfg.ReadSetting("argumentdelimiter", ""); argumentdelimiter = cfg.ReadSetting("argumentdelimiter", "");
terminator = cfg.ReadSetting("terminator", ""); terminator = cfg.ReadSetting("terminator", "");
functionregex = cfg.ReadSetting("functionregex", "");
scripttype = (ScriptType)cfg.ReadSetting("scripttype", (int)ScriptType.UNKNOWN); //mxd scripttype = (ScriptType)cfg.ReadSetting("scripttype", (int)ScriptType.UNKNOWN); //mxd
//mxd. Make braces array
if(!string.IsNullOrEmpty(functionopen)) braces.Add(functionopen[0]);
if(!string.IsNullOrEmpty(functionclose)) braces.Add(functionclose[0]);
if(!string.IsNullOrEmpty(codeblockopen)) braces.Add(codeblockopen[0]);
if(!string.IsNullOrEmpty(codeblockclose)) braces.Add(codeblockclose[0]);
if(!string.IsNullOrEmpty(arrayopen)) braces.Add(arrayopen[0]);
if(!string.IsNullOrEmpty(arrayclose)) braces.Add(arrayclose[0]);
// Make extensions array // Make extensions array
extensions = extensionsstring.Split(','); extensions = extensionsstring.Split(',');
@ -170,7 +201,11 @@ namespace CodeImp.DoomBuilder.Config
{ {
keywords.Add(de.Key.ToString(), de.Value.ToString()); keywords.Add(de.Key.ToString(), de.Value.ToString());
lowerkeywords.Add(de.Key.ToString().ToLowerInvariant(), de.Key.ToString()); lowerkeywords.Add(de.Key.ToString().ToLowerInvariant(), de.Key.ToString());
keywordkeyssorted.Add(de.Key.ToString()); //mxd
} }
//mxd. Sort keywords lookup
keywordkeyssorted.Sort();
// Load constants // Load constants
dic = cfg.ReadSetting("constants", new Hashtable()); dic = cfg.ReadSetting("constants", new Hashtable());
@ -179,6 +214,48 @@ namespace CodeImp.DoomBuilder.Config
constants.Add(de.Key.ToString()); constants.Add(de.Key.ToString());
lowerconstants.Add(de.Key.ToString().ToLowerInvariant(), de.Key.ToString()); lowerconstants.Add(de.Key.ToString().ToLowerInvariant(), de.Key.ToString());
} }
//mxd
constants.Sort();
//mxd. Load Snippets
string snippetsdir = cfg.ReadSetting("snippetsdir", "");
if(!string.IsNullOrEmpty(snippetsdir))
{
string snippetspath = Path.Combine(General.SnippetsPath, snippetsdir);
if(Directory.Exists(snippetspath))
{
string[] files = Directory.GetFiles(snippetspath, "*.txt", SearchOption.TopDirectoryOnly);
List<string> sortedkeys = new List<string>();
foreach(string file in files)
{
string name = Path.GetFileNameWithoutExtension(file);
if(string.IsNullOrEmpty(name))
{
General.ErrorLogger.Add(ErrorType.Warning, "Failed to load snippet '" + file + "' for '" + description + "' script configuration.");
}
else
{
if(name.Contains(" ")) name = name.Replace(' ', '_');
string[] lines = File.ReadAllLines(file);
if(lines.Length > 0)
{
snippets.Add(name, lines);
sortedkeys.Add(name);
}
else
{
General.ErrorLogger.Add(ErrorType.Warning, "Failed to load snippet '" + file + "' for '" + description + "' script configuration: file is empty!");
}
}
}
//mxd. Sort snippets lookup
sortedkeys.Sort();
snippetkeyssorted = new HashSet<string>(sortedkeys, StringComparer.OrdinalIgnoreCase);
}
}
// Compiler specified? // Compiler specified?
if(compilername.Length > 0) if(compilername.Length > 0)
@ -198,38 +275,6 @@ namespace CodeImp.DoomBuilder.Config
// No compiler found? // No compiler found?
if(this.compiler == null) throw new Exception("No such compiler defined: '" + compilername + "'"); if(this.compiler == null) throw new Exception("No such compiler defined: '" + compilername + "'");
} }
//mxd. Load Snippets
string snippetsdir = cfg.ReadSetting("snippetsdir", "");
if(!string.IsNullOrEmpty(snippetsdir))
{
string snippetspath = Path.Combine(General.SnippetsPath, snippetsdir);
if(Directory.Exists(snippetspath))
{
string[] files = Directory.GetFiles(snippetspath, "*.txt", SearchOption.TopDirectoryOnly);
foreach(string file in files)
{
string name = Path.GetFileNameWithoutExtension(file);
if(name.Contains(" "))
{
General.ErrorLogger.Add(ErrorType.Warning, "Failed to load snippet '" + file + "' for '" + description + "' script configuration: snippet file name must not contain spaces!");
}
else
{
string[] lines = File.ReadAllLines(file);
if(lines.Length > 0)
{
snippets.Add(name, lines);
}
else
{
General.ErrorLogger.Add(ErrorType.Warning, "Failed to load snippet '" + file + "' for '" + description + "' script configuration: file is empty!");
}
}
}
}
}
} }
#endregion #endregion
@ -279,6 +324,12 @@ namespace CodeImp.DoomBuilder.Config
return null; return null;
} }
//mxd
public string[] GetSnippet(string name)
{
return (snippetkeyssorted.Contains(name) ? snippets[name] : null);
}
// This sorts by description // This sorts by description
public int CompareTo(ScriptConfiguration other) public int CompareTo(ScriptConfiguration other)
{ {

View file

@ -20,13 +20,13 @@ using System;
using System.IO; using System.IO;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using CodeImp.DoomBuilder.Windows; using CodeImp.DoomBuilder.Windows;
using CodeImp.DoomBuilder.Config; using CodeImp.DoomBuilder.Config;
using CodeImp.DoomBuilder.Compilers; using CodeImp.DoomBuilder.Compilers;
using CodeImp.DoomBuilder.GZBuilder.Data; using CodeImp.DoomBuilder.GZBuilder.Data;
using CodeImp.DoomBuilder.GZBuilder.GZDoom; using CodeImp.DoomBuilder.GZBuilder.GZDoom;
using ScintillaNET;
#endregion #endregion
@ -36,8 +36,7 @@ namespace CodeImp.DoomBuilder.Controls
{ {
#region ================== Constants #region ================== Constants
private const int NAVIGATOR_BORDER_TOP = 8; //mxd private const int EDITOR_BORDER_TOP = 4;
private const int EDITOR_BORDER_TOP = 33;
private const int EDITOR_BORDER_BOTTOM = 4; private const int EDITOR_BORDER_BOTTOM = 4;
private const int EDITOR_BORDER_LEFT = 4; private const int EDITOR_BORDER_LEFT = 4;
private const int EDITOR_BORDER_RIGHT = 4; private const int EDITOR_BORDER_RIGHT = 4;
@ -48,7 +47,6 @@ namespace CodeImp.DoomBuilder.Controls
// The script edit control // The script edit control
protected readonly ScriptEditorControl editor; protected readonly ScriptEditorControl editor;
protected readonly ComboBox navigator; //mxd
private bool preventchanges; //mxd private bool preventchanges; //mxd
private string title; //mxd private string title; //mxd
@ -68,10 +66,14 @@ namespace CodeImp.DoomBuilder.Controls
public virtual bool IsReconfigurable { get { return true; } } public virtual bool IsReconfigurable { get { return true; } }
public virtual string Filename { get { return null; } } public virtual string Filename { get { return null; } }
public ScriptEditorPanel Panel { get { return panel; } } public ScriptEditorPanel Panel { get { return panel; } }
public new string Text { get { return title; } } //mxd internal Scintilla Scintilla { get { return editor.Scintilla; } } //mxd
public bool IsChanged { get { return editor.IsChanged; } internal set { editor.IsChanged = value; } } //mxd. Added setter public string Title { get { return title; } } //mxd
public bool IsChanged { get { return editor.IsChanged; } }
public int SelectionStart { get { return editor.SelectionStart; } set { editor.SelectionStart = value; } } public int SelectionStart { get { return editor.SelectionStart; } set { editor.SelectionStart = value; } }
public int SelectionEnd { get { return editor.SelectionEnd; } set { editor.SelectionEnd = value; } } public int SelectionEnd { get { return editor.SelectionEnd; } set { editor.SelectionEnd = value; } }
public bool ShowWhitespace { get { return editor.ShowWhitespace; } set { editor.ShowWhitespace = value; } } //mxd
public bool WrapLongLines { get { return editor.WrapLongLines; } set { editor.WrapLongLines = value; } } //mxd
public string SelectedText { get { return editor.SelectedText; } } //mxd
public ScriptConfiguration Config { get { return config; } } public ScriptConfiguration Config { get { return config; } }
#endregion #endregion
@ -89,19 +91,6 @@ namespace CodeImp.DoomBuilder.Controls
{ {
// Keep panel // Keep panel
this.panel = panel; this.panel = panel;
//mxd
navigator = new ComboBox();
navigator.Location = new Point(EDITOR_BORDER_LEFT, NAVIGATOR_BORDER_TOP);
navigator.Width = this.ClientSize.Width - EDITOR_BORDER_LEFT - EDITOR_BORDER_RIGHT;
navigator.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
navigator.DropDownStyle = ComboBoxStyle.DropDownList;
navigator.Name = "navigator";
navigator.TabStop = true;
navigator.TabIndex = 0;
navigator.DropDown += navigator_DropDown;
navigator.SelectedIndexChanged += navigator_SelectedIndexChanged;
this.Controls.Add(navigator);
// Make the script control // Make the script control
editor = new ScriptEditorControl(); editor = new ScriptEditorControl();
@ -121,6 +110,11 @@ namespace CodeImp.DoomBuilder.Controls
editor.OnFindNext += panel.FindNext; editor.OnFindNext += panel.FindNext;
editor.OnFindPrevious += panel.FindPrevious; //mxd editor.OnFindPrevious += panel.FindPrevious; //mxd
editor.OnTextChanged += editor_TextChanged; //mxd editor.OnTextChanged += editor_TextChanged; //mxd
//mxd. Bind functionbar events
editor.FunctionBar.DropDown += functionbar_DropDown;
editor.FunctionBar.SelectedIndexChanged += functionbar_SelectedIndexChanged;
} }
// Disposer // Disposer
@ -263,112 +257,13 @@ namespace CodeImp.DoomBuilder.Controls
// Find next result // Find next result
public bool FindNext(FindReplaceOptions options, bool useselectionstart) public bool FindNext(FindReplaceOptions options, bool useselectionstart)
{ {
byte[] data = editor.GetText(); return editor.FindNext(options, useselectionstart);
string text = Encoding.GetEncoding(config.CodePage).GetString(data);
StringComparison mode = options.CaseSensitive ? StringComparison.CurrentCulture : StringComparison.CurrentCultureIgnoreCase;
int startpos = (useselectionstart ? Math.Min(editor.SelectionStart, editor.SelectionEnd) : Math.Max(editor.SelectionStart, editor.SelectionEnd)); //mxd
bool wrapped = false;
while(true)
{
int result = text.IndexOf(options.FindText, startpos, mode);
if(result > -1)
{
// Check to see if it is the whole word
if(options.WholeWord)
{
// Veryfy that we have found a whole word
string foundword = editor.GetWordAt(result + 1);
if(foundword.Length != options.FindText.Length)
{
startpos = result + 1;
result = -1;
}
}
// Still ok?
if(result > -1)
{
// Select the result
editor.SelectionStart = result;
editor.SelectionEnd = result + options.FindText.Length;
editor.EnsureLineVisible(editor.LineFromPosition(editor.SelectionEnd));
return true;
}
}
else
{
// If we haven't tried from the start, try from the start now
if((startpos > 0) && !wrapped)
{
startpos = 0;
wrapped = true;
}
else
{
// Can't find it
return false;
}
}
}
} }
// Find previous result (mxd) // Find previous result (mxd)
public bool FindPrevious(FindReplaceOptions options) public bool FindPrevious(FindReplaceOptions options)
{ {
bool wrapped = false; return editor.FindPrevious(options);
byte[] data = editor.GetText();
string text = Encoding.GetEncoding(config.CodePage).GetString(data);
StringComparison mode = options.CaseSensitive ? StringComparison.CurrentCulture : StringComparison.CurrentCultureIgnoreCase;
int endpos = Math.Min(editor.SelectionStart, editor.SelectionEnd) - 1;
if(endpos < 0)
{
endpos = text.Length - 1;
wrapped = true;
}
while(true)
{
int result = text.LastIndexOf(options.FindText, endpos, mode);
if(result > -1)
{
// Check to see if it is the whole word
if(options.WholeWord)
{
// Veryfy that we have found a whole word
string foundword = editor.GetWordAt(result + 1);
if(foundword.Length != options.FindText.Length)
{
endpos = result - 1;
result = -1;
}
}
// Still ok?
if(result > -1)
{
// Select the result
editor.SelectionStart = result;
editor.SelectionEnd = result + options.FindText.Length;
editor.EnsureLineVisible(editor.LineFromPosition(editor.SelectionEnd));
return true;
}
}
else
{
// If we haven't tried from the end, try from the end now
if(!wrapped)
{
endpos = Math.Max(0, text.Length - 2);
wrapped = true;
}
else
{
// Can't find it
return false;
}
}
}
} }
// This replaces the selection with the given text // This replaces the selection with the given text
@ -376,20 +271,13 @@ namespace CodeImp.DoomBuilder.Controls
{ {
editor.ReplaceSelection(replacement); editor.ReplaceSelection(replacement);
} }
// This returns the selected text
public string GetSelectedText()
{
byte[] data = editor.GetText();
string text = Encoding.GetEncoding(config.CodePage).GetString(data);
if(editor.SelectionStart < editor.SelectionEnd)
return text.Substring(editor.SelectionStart, editor.SelectionEnd - editor.SelectionStart);
return "";
}
//mxd //mxd
protected void UpdateNavigator() protected void UpdateNavigator()
{ {
// Store currently selected item name
string prevtext = editor.FunctionBar.Text;
switch(config.ScriptType) switch(config.ScriptType)
{ {
case ScriptType.ACS: case ScriptType.ACS:
@ -405,16 +293,33 @@ namespace CodeImp.DoomBuilder.Controls
break; break;
default: // Unsupported script type. Just clear the items default: // Unsupported script type. Just clear the items
navigator.Items.Clear(); editor.FunctionBar.Items.Clear();
break; break;
} }
// Put some text in the navigator (but don't actually trigger selection event) // Put some text in the navigator (but don't actually trigger selection event)
navigator.Enabled = (navigator.Items.Count > 0); editor.FunctionBar.Enabled = (editor.FunctionBar.Items.Count > 0);
if(navigator.Items.Count > 0) if(editor.FunctionBar.Items.Count > 0)
{ {
preventchanges = true; preventchanges = true;
navigator.Text = navigator.Items[0].ToString();
// Put the text back if we still have the corresponding item
if(!string.IsNullOrEmpty(prevtext))
{
foreach(var item in editor.FunctionBar.Items)
{
if(item.ToString() == prevtext)
{
editor.FunctionBar.Text = item.ToString();
break;
}
}
}
// No dice. Use the first item
if(string.IsNullOrEmpty(editor.FunctionBar.Text))
editor.FunctionBar.Text = editor.FunctionBar.Items[0].ToString();
preventchanges = false; preventchanges = false;
} }
} }
@ -423,12 +328,12 @@ namespace CodeImp.DoomBuilder.Controls
private void UpdateNavigatorDecorate(MemoryStream stream) private void UpdateNavigatorDecorate(MemoryStream stream)
{ {
if(stream == null) return; if(stream == null) return;
navigator.Items.Clear(); editor.FunctionBar.Items.Clear();
DecorateParserSE parser = new DecorateParserSE(); DecorateParserSE parser = new DecorateParserSE();
if(parser.Parse(stream, "DECORATE", false)) if(parser.Parse(stream, "DECORATE", false))
{ {
navigator.Items.AddRange(parser.Actors.ToArray()); editor.FunctionBar.Items.AddRange(parser.Actors.ToArray());
} }
if(parser.HasError) if(parser.HasError)
@ -441,12 +346,12 @@ namespace CodeImp.DoomBuilder.Controls
private void UpdateNavigatorModeldef(MemoryStream stream) private void UpdateNavigatorModeldef(MemoryStream stream)
{ {
if(stream == null) return; if(stream == null) return;
navigator.Items.Clear(); editor.FunctionBar.Items.Clear();
ModeldefParserSE parser = new ModeldefParserSE(); ModeldefParserSE parser = new ModeldefParserSE();
if(parser.Parse(stream, "MODELDEF", false)) if(parser.Parse(stream, "MODELDEF", false))
{ {
navigator.Items.AddRange(parser.Models.ToArray()); editor.FunctionBar.Items.AddRange(parser.Models.ToArray());
} }
if(parser.HasError) if(parser.HasError)
@ -459,14 +364,14 @@ namespace CodeImp.DoomBuilder.Controls
private void UpdateNavigatorAcs(MemoryStream stream) private void UpdateNavigatorAcs(MemoryStream stream)
{ {
if(stream == null) return; if(stream == null) return;
navigator.Items.Clear(); editor.FunctionBar.Items.Clear();
AcsParserSE parser = new AcsParserSE { AddArgumentsToScriptNames = true, IsMapScriptsLump = this is ScriptLumpDocumentTab }; AcsParserSE parser = new AcsParserSE { AddArgumentsToScriptNames = true, IsMapScriptsLump = this is ScriptLumpDocumentTab };
if(parser.Parse(stream, "SCRIPTS", false)) if(parser.Parse(stream, "SCRIPTS", false))
{ {
navigator.Items.AddRange(parser.NamedScripts.ToArray()); editor.FunctionBar.Items.AddRange(parser.NamedScripts.ToArray());
navigator.Items.AddRange(parser.NumberedScripts.ToArray()); editor.FunctionBar.Items.AddRange(parser.NumberedScripts.ToArray());
navigator.Items.AddRange(parser.Functions.ToArray()); editor.FunctionBar.Items.AddRange(parser.Functions.ToArray());
} }
if(parser.HasError) if(parser.HasError)
@ -494,9 +399,16 @@ namespace CodeImp.DoomBuilder.Controls
} }
//mxd //mxd
internal void InsertSnippet(string[] lines) internal void InsertSnippet(string name)
{ {
editor.InsertSnippet(lines); string[] lines = config.GetSnippet(name);
if(lines != null) editor.InsertSnippet(lines);
}
//mxd
internal void IndentSelection(bool indent)
{
editor.IndentSelection(indent);
} }
#endregion #endregion
@ -524,11 +436,11 @@ namespace CodeImp.DoomBuilder.Controls
} }
//mxd //mxd
private void navigator_SelectedIndexChanged(object sender, EventArgs e) private void functionbar_SelectedIndexChanged(object sender, EventArgs e)
{ {
if(!preventchanges && navigator.SelectedItem is ScriptItem) if(!preventchanges && editor.FunctionBar.SelectedItem is ScriptItem)
{ {
ScriptItem si = navigator.SelectedItem as ScriptItem; ScriptItem si = editor.FunctionBar.SelectedItem as ScriptItem;
editor.EnsureLineVisible(editor.LineFromPosition(si.CursorPosition)); editor.EnsureLineVisible(editor.LineFromPosition(si.CursorPosition));
editor.SelectionStart = si.CursorPosition; editor.SelectionStart = si.CursorPosition;
editor.SelectionEnd = si.CursorPosition; editor.SelectionEnd = si.CursorPosition;
@ -540,7 +452,7 @@ namespace CodeImp.DoomBuilder.Controls
} }
//mxd //mxd
private void navigator_DropDown(object sender, EventArgs e) private void functionbar_DropDown(object sender, EventArgs e)
{ {
if(!preventchanges && editor.IsChanged) UpdateNavigator(); if(!preventchanges && editor.IsChanged) UpdateNavigator();
} }

View file

@ -28,109 +28,37 @@ namespace CodeImp.DoomBuilder.Controls
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.functionbar = new System.Windows.Forms.ComboBox(); this.scriptedit = new ScintillaNET.Scintilla();
this.scriptedit = new CodeImp.DoomBuilder.Controls.ScintillaControl();
this.scriptpanel = new System.Windows.Forms.Panel(); this.scriptpanel = new System.Windows.Forms.Panel();
this.functionbar = new System.Windows.Forms.ComboBox();
this.scriptpanel.SuspendLayout(); this.scriptpanel.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// functionbar
//
this.functionbar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.functionbar.FormattingEnabled = true;
this.functionbar.Items.AddRange(new object[] {
"Function1",
"Function2",
"Function3"});
this.functionbar.Location = new System.Drawing.Point(0, 0);
this.functionbar.Name = "functionbar";
this.functionbar.Size = new System.Drawing.Size(474, 21);
this.functionbar.TabIndex = 1;
this.functionbar.TabStop = false;
//
// scriptedit // scriptedit
// //
this.scriptedit.AnchorPosition = 0; this.scriptedit.AutoCIgnoreCase = true;
this.scriptedit.AutoCMaximumHeight = 0; this.scriptedit.AutoCMaxHeight = 12;
this.scriptedit.AutoCMaximumWidth = 0; this.scriptedit.AutoCOrder = ScintillaNET.Order.Custom;
this.scriptedit.AutoCSeparator = 0; this.scriptedit.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.scriptedit.AutoCTypeSeparator = 0; this.scriptedit.CaretWidth = 2;
this.scriptedit.BackColor = System.Drawing.SystemColors.Window;
this.scriptedit.CaretFore = 0;
this.scriptedit.CaretLineBack = 0;
this.scriptedit.CaretPeriod = 0;
this.scriptedit.CaretWidth = 0;
this.scriptedit.CodePage = 0;
this.scriptedit.ControlCharSymbol = 0;
this.scriptedit.CurrentPos = 0;
this.scriptedit.CursorType = 0;
this.scriptedit.Dock = System.Windows.Forms.DockStyle.Fill; this.scriptedit.Dock = System.Windows.Forms.DockStyle.Fill;
this.scriptedit.DocPointer = 0; this.scriptedit.ExtraAscent = 1;
this.scriptedit.EdgeColour = 0; this.scriptedit.ExtraDescent = 1;
this.scriptedit.EdgeColumn = 0; this.scriptedit.FontQuality = ScintillaNET.FontQuality.LcdOptimized;
this.scriptedit.EdgeMode = 0;
this.scriptedit.EndAtLastLine = 0;
this.scriptedit.EndOfLineMode = CodeImp.DoomBuilder.Controls.ScriptEndOfLine.CRLF;
this.scriptedit.EOLMode = 0;
this.scriptedit.ExtraAscent = 0;
this.scriptedit.ExtraDescent = 0;
this.scriptedit.HighlightGuide = 0;
this.scriptedit.Indent = 0;
this.scriptedit.IndentationGuides = 0;
this.scriptedit.IsAutoCGetAutoHide = false;
this.scriptedit.IsAutoCGetCancelAtStart = false;
this.scriptedit.IsAutoCGetChooseSingle = false;
this.scriptedit.IsAutoCGetDropRestOfWord = false;
this.scriptedit.IsAutoCGetIgnoreCase = false;
this.scriptedit.IsBackSpaceUnIndents = false;
this.scriptedit.IsBufferedDraw = false;
this.scriptedit.IsCaretLineVisible = false;
this.scriptedit.IsFocus = false;
this.scriptedit.IsHScrollBar = false;
this.scriptedit.IsMouseDownCaptures = false;
this.scriptedit.IsOvertype = false;
this.scriptedit.IsReadOnly = false;
this.scriptedit.IsTabIndents = false;
this.scriptedit.IsTwoPhaseDraw = false;
this.scriptedit.IsUndoCollection = false;
this.scriptedit.IsUsePalette = false;
this.scriptedit.IsUseTabs = false;
this.scriptedit.IsViewEOL = false;
this.scriptedit.IsVScrollBar = false;
this.scriptedit.LayoutCache = 0;
this.scriptedit.Lexer = 0;
this.scriptedit.Location = new System.Drawing.Point(0, 0); this.scriptedit.Location = new System.Drawing.Point(0, 0);
this.scriptedit.MarginLeft = 0;
this.scriptedit.MarginRight = 0;
this.scriptedit.ModEventMask = 0;
this.scriptedit.MouseDwellTime = 0;
this.scriptedit.Name = "scriptedit"; this.scriptedit.Name = "scriptedit";
this.scriptedit.PrintColourMode = 0; this.scriptedit.ScrollWidth = 200;
this.scriptedit.PrintMagnification = 0; this.scriptedit.Size = new System.Drawing.Size(474, 381);
this.scriptedit.PrintWrapMode = 0;
this.scriptedit.ScrollWidth = 0;
this.scriptedit.SearchFlags = 0;
this.scriptedit.SelectionEnd = 0;
this.scriptedit.SelectionMode = 0;
this.scriptedit.SelectionStart = 0;
this.scriptedit.Size = new System.Drawing.Size(470, 377);
this.scriptedit.Status = 0;
this.scriptedit.StyleBits = 0;
this.scriptedit.TabIndex = 0; this.scriptedit.TabIndex = 0;
this.scriptedit.TabStop = false; this.scriptedit.TabStop = false;
this.scriptedit.TabWidth = 0; this.scriptedit.UseTabs = true;
this.scriptedit.TargetEnd = 0; this.scriptedit.WhitespaceSize = 2;
this.scriptedit.TargetStart = 0; this.scriptedit.TextChanged += new System.EventHandler(this.scriptedit_TextChanged);
this.scriptedit.ViewWhitespace = CodeImp.DoomBuilder.Controls.ScriptWhiteSpace.Invisible; this.scriptedit.CharAdded += new System.EventHandler<ScintillaNET.CharAddedEventArgs>(this.scriptedit_CharAdded);
this.scriptedit.ViewWS = 0; this.scriptedit.AutoCCompleted += new System.EventHandler<ScintillaNET.AutoCSelectionEventArgs>(this.scriptedit_AutoCCompleted);
this.scriptedit.WrapMode = 0; this.scriptedit.InsertCheck += new System.EventHandler<ScintillaNET.InsertCheckEventArgs>(this.scriptedit_InsertCheck);
this.scriptedit.WrapStartIndent = 0;
this.scriptedit.WrapVisualFlags = 0;
this.scriptedit.WrapVisualFlagsLocation = 0;
this.scriptedit.XOffset = 0;
this.scriptedit.ZoomLevel = 0;
this.scriptedit.KeyUp += new System.Windows.Forms.KeyEventHandler(this.scriptedit_KeyUp); this.scriptedit.KeyUp += new System.Windows.Forms.KeyEventHandler(this.scriptedit_KeyUp);
this.scriptedit.UpdateUI += new System.EventHandler<ScintillaNET.UpdateUIEventArgs>(this.scriptedit_UpdateUI);
this.scriptedit.KeyDown += new System.Windows.Forms.KeyEventHandler(this.scriptedit_KeyDown); this.scriptedit.KeyDown += new System.Windows.Forms.KeyEventHandler(this.scriptedit_KeyDown);
// //
// scriptpanel // scriptpanel
@ -138,13 +66,24 @@ namespace CodeImp.DoomBuilder.Controls
this.scriptpanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) this.scriptpanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.scriptpanel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.scriptpanel.Controls.Add(this.scriptedit); this.scriptpanel.Controls.Add(this.scriptedit);
this.scriptpanel.Location = new System.Drawing.Point(0, 27); this.scriptpanel.Location = new System.Drawing.Point(0, 27);
this.scriptpanel.Name = "scriptpanel"; this.scriptpanel.Name = "scriptpanel";
this.scriptpanel.Size = new System.Drawing.Size(474, 381); this.scriptpanel.Size = new System.Drawing.Size(474, 381);
this.scriptpanel.TabIndex = 2; this.scriptpanel.TabIndex = 2;
// //
// functionbar
//
this.functionbar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.functionbar.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.functionbar.FormattingEnabled = true;
this.functionbar.Location = new System.Drawing.Point(0, 0);
this.functionbar.Name = "functionbar";
this.functionbar.Size = new System.Drawing.Size(474, 21);
this.functionbar.TabIndex = 2;
this.functionbar.TabStop = false;
//
// ScriptEditorControl // ScriptEditorControl
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
@ -160,8 +99,8 @@ namespace CodeImp.DoomBuilder.Controls
#endregion #endregion
private ScintillaControl scriptedit; private ScintillaNET.Scintilla scriptedit;
private System.Windows.Forms.ComboBox functionbar;
private System.Windows.Forms.Panel scriptpanel; private System.Windows.Forms.Panel scriptpanel;
private System.Windows.Forms.ComboBox functionbar;
} }
} }

File diff suppressed because it is too large Load diff

View file

@ -44,6 +44,11 @@ namespace CodeImp.DoomBuilder.Controls
this.buttoncopy = new System.Windows.Forms.ToolStripButton(); this.buttoncopy = new System.Windows.Forms.ToolStripButton();
this.buttonpaste = new System.Windows.Forms.ToolStripButton(); this.buttonpaste = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.buttonunindent = new System.Windows.Forms.ToolStripButton();
this.buttonindent = new System.Windows.Forms.ToolStripButton();
this.buttonwhitespace = new System.Windows.Forms.ToolStripButton();
this.buttonwordwrap = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
this.buttonsnippets = new System.Windows.Forms.ToolStripDropDownButton(); this.buttonsnippets = new System.Windows.Forms.ToolStripDropDownButton();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.buttonscriptconfig = new System.Windows.Forms.ToolStripDropDownButton(); this.buttonscriptconfig = new System.Windows.Forms.ToolStripDropDownButton();
@ -68,6 +73,7 @@ namespace CodeImp.DoomBuilder.Controls
this.errorimages = new System.Windows.Forms.ImageList(this.components); this.errorimages = new System.Windows.Forms.ImageList(this.components);
this.statusbar = new System.Windows.Forms.StatusStrip(); this.statusbar = new System.Windows.Forms.StatusStrip();
this.statuslabel = new System.Windows.Forms.ToolStripStatusLabel(); this.statuslabel = new System.Windows.Forms.ToolStripStatusLabel();
this.positionlabel = new System.Windows.Forms.ToolStripStatusLabel();
this.scripttype = new System.Windows.Forms.ToolStripStatusLabel(); this.scripttype = new System.Windows.Forms.ToolStripStatusLabel();
this.statusflasher = new System.Windows.Forms.Timer(this.components); this.statusflasher = new System.Windows.Forms.Timer(this.components);
this.statusresetter = new System.Windows.Forms.Timer(this.components); this.statusresetter = new System.Windows.Forms.Timer(this.components);
@ -88,7 +94,7 @@ namespace CodeImp.DoomBuilder.Controls
this.tabs.Name = "tabs"; this.tabs.Name = "tabs";
this.tabs.Padding = new System.Drawing.Point(12, 3); this.tabs.Padding = new System.Drawing.Point(12, 3);
this.tabs.SelectedIndex = 0; this.tabs.SelectedIndex = 0;
this.tabs.Size = new System.Drawing.Size(720, 379); this.tabs.Size = new System.Drawing.Size(794, 379);
this.tabs.TabIndex = 0; this.tabs.TabIndex = 0;
this.tabs.TabStop = false; this.tabs.TabStop = false;
this.tabs.Selecting += new System.Windows.Forms.TabControlCancelEventHandler(this.tabs_Selecting); this.tabs.Selecting += new System.Windows.Forms.TabControlCancelEventHandler(this.tabs_Selecting);
@ -111,6 +117,11 @@ namespace CodeImp.DoomBuilder.Controls
this.buttoncopy, this.buttoncopy,
this.buttonpaste, this.buttonpaste,
this.toolStripSeparator3, this.toolStripSeparator3,
this.buttonunindent,
this.buttonindent,
this.buttonwhitespace,
this.buttonwordwrap,
this.toolStripSeparator6,
this.buttonsnippets, this.buttonsnippets,
this.toolStripSeparator4, this.toolStripSeparator4,
this.buttonscriptconfig, this.buttonscriptconfig,
@ -126,7 +137,7 @@ namespace CodeImp.DoomBuilder.Controls
this.searchwholeword}); this.searchwholeword});
this.toolbar.Location = new System.Drawing.Point(0, 0); this.toolbar.Location = new System.Drawing.Point(0, 0);
this.toolbar.Name = "toolbar"; this.toolbar.Name = "toolbar";
this.toolbar.Size = new System.Drawing.Size(726, 25); this.toolbar.Size = new System.Drawing.Size(800, 25);
this.toolbar.TabIndex = 1; this.toolbar.TabIndex = 1;
// //
// buttonnew // buttonnew
@ -240,6 +251,54 @@ namespace CodeImp.DoomBuilder.Controls
this.toolStripSeparator3.Name = "toolStripSeparator3"; this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(6, 25); this.toolStripSeparator3.Size = new System.Drawing.Size(6, 25);
// //
// buttonunindent
//
this.buttonunindent.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.buttonunindent.Image = global::CodeImp.DoomBuilder.Properties.Resources.TextUnindent;
this.buttonunindent.ImageTransparentColor = System.Drawing.Color.Magenta;
this.buttonunindent.Name = "buttonunindent";
this.buttonunindent.Size = new System.Drawing.Size(23, 22);
this.buttonunindent.Text = "Unindent selection";
this.buttonunindent.Click += new System.EventHandler(this.buttonunindent_Click);
//
// buttonindent
//
this.buttonindent.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.buttonindent.Image = global::CodeImp.DoomBuilder.Properties.Resources.TextIndent;
this.buttonindent.ImageTransparentColor = System.Drawing.Color.Magenta;
this.buttonindent.Name = "buttonindent";
this.buttonindent.Size = new System.Drawing.Size(23, 22);
this.buttonindent.Text = "Indent selection";
this.buttonindent.Click += new System.EventHandler(this.buttonindent_Click);
//
// buttonwhitespace
//
this.buttonwhitespace.CheckOnClick = true;
this.buttonwhitespace.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.buttonwhitespace.Image = global::CodeImp.DoomBuilder.Properties.Resources.TextWhitespace;
this.buttonwhitespace.ImageTransparentColor = System.Drawing.Color.Magenta;
this.buttonwhitespace.Name = "buttonwhitespace";
this.buttonwhitespace.Size = new System.Drawing.Size(23, 22);
this.buttonwhitespace.Text = "Show whitespace";
this.buttonwhitespace.Click += new System.EventHandler(this.buttonwhitespace_Click);
//
// buttonwordwrap
//
this.buttonwordwrap.CheckOnClick = true;
this.buttonwordwrap.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.buttonwordwrap.Image = global::CodeImp.DoomBuilder.Properties.Resources.WordWrap;
this.buttonwordwrap.ImageTransparentColor = System.Drawing.Color.Magenta;
this.buttonwordwrap.Name = "buttonwordwrap";
this.buttonwordwrap.Size = new System.Drawing.Size(23, 22);
this.buttonwordwrap.Text = "Wrap long lines";
this.buttonwordwrap.Click += new System.EventHandler(this.buttonwordwrap_Click);
//
// toolStripSeparator6
//
this.toolStripSeparator6.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
this.toolStripSeparator6.Name = "toolStripSeparator6";
this.toolStripSeparator6.Size = new System.Drawing.Size(6, 25);
//
// buttonsnippets // buttonsnippets
// //
this.buttonsnippets.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; this.buttonsnippets.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
@ -391,7 +450,7 @@ namespace CodeImp.DoomBuilder.Controls
// //
this.splitter.Panel2.Controls.Add(this.label1); this.splitter.Panel2.Controls.Add(this.label1);
this.splitter.Panel2.Controls.Add(this.errorlist); this.splitter.Panel2.Controls.Add(this.errorlist);
this.splitter.Size = new System.Drawing.Size(726, 516); this.splitter.Size = new System.Drawing.Size(800, 516);
this.splitter.SplitterDistance = 390; this.splitter.SplitterDistance = 390;
this.splitter.TabIndex = 2; this.splitter.TabIndex = 2;
this.splitter.TabStop = false; this.splitter.TabStop = false;
@ -406,7 +465,7 @@ namespace CodeImp.DoomBuilder.Controls
this.label1.Location = new System.Drawing.Point(3, 0); this.label1.Location = new System.Drawing.Point(3, 0);
this.label1.Name = "label1"; this.label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(1); this.label1.Padding = new System.Windows.Forms.Padding(1);
this.label1.Size = new System.Drawing.Size(720, 16); this.label1.Size = new System.Drawing.Size(794, 16);
this.label1.TabIndex = 1; this.label1.TabIndex = 1;
this.label1.Text = "Errors"; this.label1.Text = "Errors";
// //
@ -427,7 +486,7 @@ namespace CodeImp.DoomBuilder.Controls
this.errorlist.MultiSelect = false; this.errorlist.MultiSelect = false;
this.errorlist.Name = "errorlist"; this.errorlist.Name = "errorlist";
this.errorlist.ShowGroups = false; this.errorlist.ShowGroups = false;
this.errorlist.Size = new System.Drawing.Size(720, 100); this.errorlist.Size = new System.Drawing.Size(794, 100);
this.errorlist.SmallImageList = this.errorimages; this.errorlist.SmallImageList = this.errorimages;
this.errorlist.TabIndex = 0; this.errorlist.TabIndex = 0;
this.errorlist.TabStop = false; this.errorlist.TabStop = false;
@ -460,10 +519,11 @@ namespace CodeImp.DoomBuilder.Controls
// //
this.statusbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.statusbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.statuslabel, this.statuslabel,
this.positionlabel,
this.scripttype}); this.scripttype});
this.statusbar.Location = new System.Drawing.Point(0, 541); this.statusbar.Location = new System.Drawing.Point(0, 541);
this.statusbar.Name = "statusbar"; this.statusbar.Name = "statusbar";
this.statusbar.Size = new System.Drawing.Size(726, 22); this.statusbar.Size = new System.Drawing.Size(800, 22);
this.statusbar.TabIndex = 3; this.statusbar.TabIndex = 3;
this.statusbar.Text = "statusStrip1"; this.statusbar.Text = "statusStrip1";
// //
@ -476,11 +536,19 @@ namespace CodeImp.DoomBuilder.Controls
this.statuslabel.Size = new System.Drawing.Size(60, 17); this.statuslabel.Size = new System.Drawing.Size(60, 17);
this.statuslabel.Text = "Ready."; this.statuslabel.Text = "Ready.";
// //
// positionlabel
//
this.positionlabel.Name = "positionlabel";
this.positionlabel.Size = new System.Drawing.Size(634, 17);
this.positionlabel.Spring = true;
this.positionlabel.Text = "100 : 12 (120)";
this.positionlabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// scripttype // scripttype
// //
this.scripttype.Margin = new System.Windows.Forms.Padding(30, 3, 0, 2);
this.scripttype.Name = "scripttype"; this.scripttype.Name = "scripttype";
this.scripttype.Size = new System.Drawing.Size(648, 17); this.scripttype.Size = new System.Drawing.Size(58, 17);
this.scripttype.Spring = true;
this.scripttype.Text = "Plain Text"; this.scripttype.Text = "Plain Text";
this.scripttype.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.scripttype.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
// //
@ -501,7 +569,7 @@ namespace CodeImp.DoomBuilder.Controls
this.Controls.Add(this.statusbar); this.Controls.Add(this.statusbar);
this.Controls.Add(this.toolbar); this.Controls.Add(this.toolbar);
this.Name = "ScriptEditorPanel"; this.Name = "ScriptEditorPanel";
this.Size = new System.Drawing.Size(726, 563); this.Size = new System.Drawing.Size(800, 563);
this.toolbar.ResumeLayout(false); this.toolbar.ResumeLayout(false);
this.toolbar.PerformLayout(); this.toolbar.PerformLayout();
this.splitter.Panel1.ResumeLayout(false); this.splitter.Panel1.ResumeLayout(false);
@ -557,5 +625,11 @@ namespace CodeImp.DoomBuilder.Controls
private System.Windows.Forms.ToolStripStatusLabel scripttype; private System.Windows.Forms.ToolStripStatusLabel scripttype;
private System.Windows.Forms.Timer statusflasher; private System.Windows.Forms.Timer statusflasher;
private System.Windows.Forms.Timer statusresetter; private System.Windows.Forms.Timer statusresetter;
private System.Windows.Forms.ToolStripStatusLabel positionlabel;
private System.Windows.Forms.ToolStripButton buttonunindent;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
private System.Windows.Forms.ToolStripButton buttonindent;
private System.Windows.Forms.ToolStripButton buttonwhitespace;
private System.Windows.Forms.ToolStripButton buttonwordwrap;
} }
} }

View file

@ -25,6 +25,7 @@ using System.Windows.Forms;
using CodeImp.DoomBuilder.Compilers; using CodeImp.DoomBuilder.Compilers;
using CodeImp.DoomBuilder.Config; using CodeImp.DoomBuilder.Config;
using CodeImp.DoomBuilder.Windows; using CodeImp.DoomBuilder.Windows;
using ScintillaNET;
#endregion #endregion
@ -116,16 +117,20 @@ namespace CodeImp.DoomBuilder.Controls
foreach(MapLumpInfo maplumpinfo in General.Map.Config.MapLumps.Values) foreach(MapLumpInfo maplumpinfo in General.Map.Config.MapLumps.Values)
{ {
// Is this a script lump? // Is this a script lump?
if(maplumpinfo.Script != null) if(maplumpinfo.ScriptBuild) //mxd
{
// Load this!
ScriptLumpDocumentTab t = new ScriptLumpDocumentTab(this, maplumpinfo.Name, maplumpinfo.Script);
tabs.TabPages.Add(t);
}
else if(maplumpinfo.ScriptBuild) //mxd
{ {
// Load this! // Load this!
ScriptLumpDocumentTab t = new ScriptLumpDocumentTab(this, maplumpinfo.Name, General.CompiledScriptConfigs[General.Map.Options.ScriptCompiler]); ScriptLumpDocumentTab t = new ScriptLumpDocumentTab(this, maplumpinfo.Name, General.CompiledScriptConfigs[General.Map.Options.ScriptCompiler]);
t.OnTextChanged += tabpage_OnLumpTextChanged; //mxd
t.Scintilla.UpdateUI += scintilla_OnUpdateUI; //mxd
tabs.TabPages.Add(t);
}
else if(maplumpinfo.Script != null)
{
// Load this!
ScriptLumpDocumentTab t = new ScriptLumpDocumentTab(this, maplumpinfo.Name, maplumpinfo.Script);
t.OnTextChanged += tabpage_OnLumpTextChanged; //mxd
t.Scintilla.UpdateUI += scintilla_OnUpdateUI; //mxd
tabs.TabPages.Add(t); tabs.TabPages.Add(t);
} }
} }
@ -160,21 +165,35 @@ namespace CodeImp.DoomBuilder.Controls
// This applies user preferences // This applies user preferences
public void ApplySettings() public void ApplySettings()
{ {
// Apply settings
//int panel2size = General.Settings.ReadSetting("scriptspanel.splitter", splitter.ClientRectangle.Height - splitter.SplitterDistance);
//splitter.SplitterDistance = splitter.ClientRectangle.Height - panel2size;
errorlist.Columns[0].Width = General.Settings.ReadSetting("scriptspanel.errorscolumn0width", errorlist.Columns[0].Width); errorlist.Columns[0].Width = General.Settings.ReadSetting("scriptspanel.errorscolumn0width", errorlist.Columns[0].Width);
errorlist.Columns[1].Width = General.Settings.ReadSetting("scriptspanel.errorscolumn1width", errorlist.Columns[1].Width); errorlist.Columns[1].Width = General.Settings.ReadSetting("scriptspanel.errorscolumn1width", errorlist.Columns[1].Width);
errorlist.Columns[2].Width = General.Settings.ReadSetting("scriptspanel.errorscolumn2width", errorlist.Columns[2].Width); errorlist.Columns[2].Width = General.Settings.ReadSetting("scriptspanel.errorscolumn2width", errorlist.Columns[2].Width);
buttonwhitespace.Checked = General.Settings.ReadSetting("scriptspanel.showwhitespace", false); //mxd
buttonwordwrap.Checked = General.Settings.ReadSetting("scriptspanel.wraplonglines", false); //mxd
ApplyTabSettings(); //mxd
} }
// This saves user preferences // This saves user preferences
public void SaveSettings() public void SaveSettings()
{ {
//General.Settings.WriteSetting("scriptspanel.splitter", splitter.ClientRectangle.Height - splitter.SplitterDistance);
General.Settings.WriteSetting("scriptspanel.errorscolumn0width", errorlist.Columns[0].Width); General.Settings.WriteSetting("scriptspanel.errorscolumn0width", errorlist.Columns[0].Width);
General.Settings.WriteSetting("scriptspanel.errorscolumn1width", errorlist.Columns[1].Width); General.Settings.WriteSetting("scriptspanel.errorscolumn1width", errorlist.Columns[1].Width);
General.Settings.WriteSetting("scriptspanel.errorscolumn2width", errorlist.Columns[2].Width); General.Settings.WriteSetting("scriptspanel.showwhitespace", buttonwhitespace.Checked); //mxd
General.Settings.WriteSetting("scriptspanel.wraplonglines", buttonwordwrap.Checked); //mxd
}
//mxd
private void ApplyTabSettings()
{
foreach(var tp in tabs.TabPages)
{
ScriptDocumentTab scripttab = (tp as ScriptDocumentTab);
if(scripttab != null)
{
scripttab.WrapLongLines = buttonwordwrap.Checked;
scripttab.ShowWhitespace = buttonwhitespace.Checked;
}
}
} }
#endregion #endregion
@ -230,7 +249,7 @@ namespace CodeImp.DoomBuilder.Controls
{ {
if(!string.IsNullOrEmpty(findoptions.FindText) && (options.ReplaceWith != null) && (ActiveTab != null)) if(!string.IsNullOrEmpty(findoptions.FindText) && (options.ReplaceWith != null) && (ActiveTab != null))
{ {
if(string.Compare(ActiveTab.GetSelectedText(), options.FindText, !options.CaseSensitive) == 0) if(string.Compare(ActiveTab.SelectedText, options.FindText, !options.CaseSensitive) == 0)
{ {
// Replace selection // Replace selection
ActiveTab.ReplaceSelection(options.ReplaceWith); ActiveTab.ReplaceSelection(options.ReplaceWith);
@ -321,7 +340,7 @@ namespace CodeImp.DoomBuilder.Controls
findreplaceform.Show(this.ParentForm); findreplaceform.Show(this.ParentForm);
if(ActiveTab.SelectionEnd != ActiveTab.SelectionStart) if(ActiveTab.SelectionEnd != ActiveTab.SelectionStart)
findreplaceform.SetFindText(ActiveTab.GetSelectedText()); findreplaceform.SetFindText(ActiveTab.SelectedText);
} }
catch(Exception) catch(Exception)
{ {
@ -421,7 +440,7 @@ namespace CodeImp.DoomBuilder.Controls
if(t.IsChanged) if(t.IsChanged)
{ {
// Ask to save // Ask to save
DialogResult result = MessageBox.Show(this.ParentForm, "Do you want to save changes to " + t.Text + "?", "Close File", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); DialogResult result = MessageBox.Show(this.ParentForm, "Do you want to save changes to " + t.Title + "?", "Close File", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
switch(result) switch(result)
{ {
case DialogResult.Yes: case DialogResult.Yes:
@ -492,20 +511,24 @@ namespace CodeImp.DoomBuilder.Controls
t = (tabs.SelectedTab as ScriptDocumentTab); t = (tabs.SelectedTab as ScriptDocumentTab);
// Enable/disable buttons // Enable/disable buttons
buttonsave.Enabled = (t != null) && t.ExplicitSave && t.IsChanged; buttonsave.Enabled = (t != null && t.ExplicitSave && t.IsChanged);
buttonsaveall.Enabled = (explicitsavescripts > 0); buttonsaveall.Enabled = (explicitsavescripts > 0);
buttoncompile.Enabled = (t != null) && (t.Config.Compiler != null); buttoncompile.Enabled = (t != null && t.Config.Compiler != null);
buttonsearch.Enabled = (t != null); //mxd buttonsearch.Enabled = (t != null); //mxd
buttonkeywordhelp.Enabled = (t != null) && !string.IsNullOrEmpty(t.Config.KeywordHelp); buttonkeywordhelp.Enabled = (t != null && !string.IsNullOrEmpty(t.Config.KeywordHelp));
buttonscriptconfig.Enabled = (t != null) && t.IsReconfigurable; buttonscriptconfig.Enabled = (t != null && t.IsReconfigurable);
buttonundo.Enabled = (t != null); buttonundo.Enabled = (t != null && t.Scintilla.CanUndo);
buttonredo.Enabled = (t != null); buttonredo.Enabled = (t != null && t.Scintilla.CanRedo);
buttoncopy.Enabled = (t != null); buttoncopy.Enabled = (t != null && t.Scintilla.SelectionStart < t.Scintilla.SelectionEnd);
buttoncut.Enabled = (t != null); buttoncut.Enabled = (t != null && t.Scintilla.SelectionStart < t.Scintilla.SelectionEnd);
buttonpaste.Enabled = (t != null); buttonpaste.Enabled = (t != null && t.Scintilla.CanPaste);
buttonclose.Enabled = (t != null) && t.IsClosable; buttonclose.Enabled = (t != null && t.IsClosable);
buttonsnippets.DropDownItems.Clear(); //mxd buttonsnippets.DropDownItems.Clear(); //mxd
buttonsnippets.Enabled = (t != null) && t.Config.Snippets.Count > 0; //mxd buttonsnippets.Enabled = (t != null && t.Config.Snippets.Count > 0); //mxd
buttonindent.Enabled = (t != null); //mxd
buttonunindent.Enabled = (t != null && t.Scintilla.Lines[t.Scintilla.CurrentLine].Indentation > 0); //mxd
buttonwhitespace.Enabled = (t != null); //mxd
buttonwordwrap.Enabled = (t != null); //mxd
if(t != null) if(t != null)
{ {
@ -519,7 +542,8 @@ namespace CodeImp.DoomBuilder.Controls
//mxd. Add snippets //mxd. Add snippets
if(t.Config != null && t.Config.Snippets.Count > 0) if(t.Config != null && t.Config.Snippets.Count > 0)
{ {
if(t.Config.Snippets.Count > 0) foreach(KeyValuePair<string, string[]> group in t.Config.Snippets) buttonsnippets.DropDownItems.Add(group.Key).Click += OnInsertSnippetClick; if(t.Config.Snippets.Count > 0)
foreach(string snippetname in t.Config.Snippets) buttonsnippets.DropDownItems.Add(snippetname).Click += OnInsertSnippetClick;
} }
// Focus to script editor // Focus to script editor
@ -589,24 +613,27 @@ namespace CodeImp.DoomBuilder.Controls
// Done // Done
t.OnTextChanged += tabpage_OnTextChanged; //mxd t.OnTextChanged += tabpage_OnTextChanged; //mxd
t.IsChanged = false; //mxd. Not changed yet t.Scintilla.UpdateUI += scintilla_OnUpdateUI;
UpdateToolbar(true); UpdateToolbar(true);
return t; return t;
} }
else
{ // Failed
// Failed return null;
return null;
}
} }
// This saves the current open script // This saves the current open script
public void ExplicitSaveCurrentTab() public void ExplicitSaveCurrentTab()
{ {
ScriptDocumentTab t = (tabs.SelectedTab as ScriptDocumentTab); ScriptDocumentTab t = (tabs.SelectedTab as ScriptDocumentTab);
if((t != null) && t.ExplicitSave) if((t != null))
{ {
buttonsave_Click(this, EventArgs.Empty); if(t.ExplicitSave)
buttonsave_Click(this, EventArgs.Empty);
else if(t.Config.Compiler != null) //mxd
buttoncompile_Click(this, EventArgs.Empty);
else
General.MessageBeep(MessageBeepType.Default);
} }
else else
{ {
@ -625,7 +652,7 @@ namespace CodeImp.DoomBuilder.Controls
{ {
// Get script // Get script
ScriptDocumentTab t = (tabs.SelectedTab as ScriptDocumentTab); ScriptDocumentTab t = (tabs.SelectedTab as ScriptDocumentTab);
return t.LaunchKeywordHelp(); return (t != null && t.LaunchKeywordHelp());
} }
//mxd. This changes status text //mxd. This changes status text
@ -837,18 +864,14 @@ namespace CodeImp.DoomBuilder.Controls
t.SaveAs(savefile.FileName); t.SaveAs(savefile.FileName);
return true; return true;
} }
else
{ // Cancelled
// Cancelled return false;
return false;
}
}
else
{
// Save to same filename
t.Save();
return true;
} }
// Save to same filename
t.Save();
return true;
} }
// A tab is selected // A tab is selected
@ -894,15 +917,15 @@ namespace CodeImp.DoomBuilder.Controls
} }
// Compile now // Compile now
DisplayStatus(ScriptStatusType.Busy, "Compiling script \"" + t.Text + "\"..."); DisplayStatus(ScriptStatusType.Busy, "Compiling script \"" + t.Title + "\"...");
Cursor.Current = Cursors.WaitCursor; Cursor.Current = Cursors.WaitCursor;
t.Compile(); t.Compile();
// Show warning // Show warning
if((compilererrors != null) && (compilererrors.Count > 0)) if((compilererrors != null) && (compilererrors.Count > 0))
DisplayStatus(ScriptStatusType.Warning, compilererrors.Count + " errors while compiling \"" + t.Text + "\"!"); DisplayStatus(ScriptStatusType.Warning, compilererrors.Count + " errors while compiling \"" + t.Title + "\"!");
else else
DisplayStatus(ScriptStatusType.Info, "Script \"" + t.Text + "\" compiled without errors."); DisplayStatus(ScriptStatusType.Info, "Script \"" + t.Title + "\" compiled without errors.");
Cursor.Current = Cursors.Default; Cursor.Current = Cursors.Default;
UpdateToolbar(true); UpdateToolbar(true);
@ -948,6 +971,32 @@ namespace CodeImp.DoomBuilder.Controls
UpdateToolbar(true); UpdateToolbar(true);
} }
//mxd
private void buttonunindent_Click(object sender, EventArgs e)
{
ScriptDocumentTab t = (tabs.SelectedTab as ScriptDocumentTab);
t.IndentSelection(false);
}
//mxd
private void buttonindent_Click(object sender, EventArgs e)
{
ScriptDocumentTab t = (tabs.SelectedTab as ScriptDocumentTab);
t.IndentSelection(true);
}
//mxd
private void buttonwhitespace_Click(object sender, EventArgs e)
{
ApplyTabSettings();
}
//mxd
private void buttonwordwrap_Click(object sender, EventArgs e)
{
ApplyTabSettings();
}
//mxd. Search clicked //mxd. Search clicked
private void buttonsearch_Click(object sender, EventArgs e) private void buttonsearch_Click(object sender, EventArgs e)
{ {
@ -958,7 +1007,7 @@ namespace CodeImp.DoomBuilder.Controls
private void OnInsertSnippetClick(object sender, EventArgs eventArgs) private void OnInsertSnippetClick(object sender, EventArgs eventArgs)
{ {
ScriptDocumentTab t = (tabs.SelectedTab as ScriptDocumentTab); ScriptDocumentTab t = (tabs.SelectedTab as ScriptDocumentTab);
t.InsertSnippet( t.Config.Snippets[((ToolStripItem)sender).Text] ); t.InsertSnippet( ((ToolStripItem)sender).Text );
} }
// Mouse released on tabs // Mouse released on tabs
@ -967,13 +1016,52 @@ namespace CodeImp.DoomBuilder.Controls
ForceFocus(); ForceFocus();
} }
//mxd //mxd. Text in ScriptFileDocumentTab was changed
private void tabpage_OnTextChanged(object sender, EventArgs eventArgs) private void tabpage_OnTextChanged(object sender, EventArgs eventArgs)
{ {
if(tabs.SelectedTab != null) if(tabs.SelectedTab != null)
{ {
ScriptDocumentTab curtab = tabs.SelectedTab as ScriptDocumentTab; ScriptDocumentTab curtab = tabs.SelectedTab as ScriptDocumentTab;
buttonsave.Enabled = (curtab != null && curtab.ExplicitSave && curtab.IsChanged); if(curtab != null)
{
buttonsave.Enabled = (curtab.ExplicitSave && curtab.IsChanged);
buttonundo.Enabled = curtab.Scintilla.CanUndo;
buttonredo.Enabled = curtab.Scintilla.CanRedo;
}
}
}
//mxd. Text in ScriptLumpDocumentTab was changed
private void tabpage_OnLumpTextChanged(object sender, EventArgs e)
{
if(tabs.SelectedTab != null)
{
ScriptDocumentTab curtab = tabs.SelectedTab as ScriptDocumentTab;
if(curtab != null)
{
buttonundo.Enabled = curtab.Scintilla.CanUndo;
buttonredo.Enabled = curtab.Scintilla.CanRedo;
}
}
}
//mxd
private void scintilla_OnUpdateUI(object sender, UpdateUIEventArgs e)
{
Scintilla s = sender as Scintilla;
if(s != null)
{
// Update caret position info [line] : [caret pos start] OR [caret pos start x selection length] ([total lines])
positionlabel.Text = (s.CurrentLine + 1) + " : "
+ (s.SelectionStart + 1 - s.Lines[s.LineFromPosition(s.SelectionStart)].Position)
+ (s.SelectionStart != s.SelectionEnd ? "x" + (s.SelectionEnd - s.SelectionStart) : "")
+ " (" + s.Lines.Count + ")";
// Update copy-paste buttons
buttoncut.Enabled = (s.SelectionEnd > s.SelectionStart);
buttoncopy.Enabled = (s.SelectionEnd > s.SelectionStart);
buttonpaste.Enabled = s.CanPaste;
buttonunindent.Enabled = s.Lines[s.CurrentLine].Indentation > 0;
} }
} }

View file

@ -61,7 +61,7 @@ namespace CodeImp.DoomBuilder.Controls
if(config.Extensions.Length > 0) ext = "." + config.Extensions[0]; if(config.Extensions.Length > 0) ext = "." + config.Extensions[0];
SetTitle("Untitled" + ext); SetTitle("Untitled" + ext);
editor.ClearUndoRedo(); editor.ClearUndoRedo();
navigator.Enabled = (config.ScriptType != ScriptType.UNKNOWN); //mxd editor.FunctionBar.Enabled = (config.ScriptType != ScriptType.UNKNOWN); //mxd
} }
#endregion #endregion
@ -289,7 +289,7 @@ namespace CodeImp.DoomBuilder.Controls
} }
// Done // Done
editor.IsChanged = false; editor.SetSavePoint(); //mxd
UpdateTitle(); //mxd UpdateTitle(); //mxd
return true; return true;
} }
@ -318,7 +318,7 @@ namespace CodeImp.DoomBuilder.Controls
try try
{ {
// Read the file // Read the file
editor.SetText(File.ReadAllBytes(filepathname)); editor.Text = File.ReadAllText(filepathname); //mxd
} }
catch(Exception e) catch(Exception e)
{ {
@ -332,7 +332,6 @@ namespace CodeImp.DoomBuilder.Controls
// Setup // Setup
this.filepathname = filepathname; this.filepathname = filepathname;
editor.ClearUndoRedo(); editor.ClearUndoRedo();
editor.IsChanged = false; //mxd. Not changed yet
SetTitle(Path.GetFileName(filepathname)); SetTitle(Path.GetFileName(filepathname));
UpdateNavigator(); //mxd UpdateNavigator(); //mxd

View file

@ -17,9 +17,9 @@
#region ================== Namespaces #region ================== Namespaces
using System.Collections.Generic; using System.Collections.Generic;
using CodeImp.DoomBuilder.Config;
using System.IO; using System.IO;
using CodeImp.DoomBuilder.Compilers; using CodeImp.DoomBuilder.Compilers;
using CodeImp.DoomBuilder.Config;
#endregion #endregion
@ -72,13 +72,12 @@ namespace CodeImp.DoomBuilder.Controls
MemoryStream stream = General.Map.GetLumpData(this.lumpname); MemoryStream stream = General.Map.GetLumpData(this.lumpname);
if(stream != null) if(stream != null)
{ {
editor.SetText(stream.ToArray()); editor.SetText(stream.ToArray()); //mxd
editor.ClearUndoRedo(); editor.ClearUndoRedo();
UpdateNavigator(); //mxd UpdateNavigator(); //mxd
} }
// Set title // Set title
IsChanged = false; //mxd. Not changed yet
SetTitle(ismapheader ? General.Map.Options.CurrentName : this.lumpname.ToUpper()); SetTitle(ismapheader ? General.Map.Options.CurrentName : this.lumpname.ToUpper());
} }
@ -116,7 +115,7 @@ namespace CodeImp.DoomBuilder.Controls
// Store the lump data // Store the lump data
MemoryStream stream = new MemoryStream(editor.GetText()); MemoryStream stream = new MemoryStream(editor.GetText());
General.Map.SetLumpData(lumpname, stream); General.Map.SetLumpData(lumpname, stream);
editor.IsChanged = false; editor.SetSavePoint(); //mxd
UpdateTitle(); //mxd UpdateTitle(); //mxd
return true; return true;
} }

View file

@ -547,8 +547,8 @@ namespace CodeImp.DoomBuilder.Data
// This returns a preview image // This returns a preview image
public virtual Image GetPreview() public virtual Image GetPreview()
{ {
lock(this) //lock(this)
{ //{
// Preview ready? // Preview ready?
if(previewstate == ImageLoadState.Ready) if(previewstate == ImageLoadState.Ready)
{ {
@ -565,7 +565,7 @@ namespace CodeImp.DoomBuilder.Data
// Return loading bitmap // Return loading bitmap
return Properties.Resources.Hourglass; return Properties.Resources.Hourglass;
} //}
} }
//mxd. This greatly speeds up Dictionary lookups //mxd. This greatly speeds up Dictionary lookups

View file

@ -166,9 +166,9 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
case "function": case "function":
{ {
SkipWhitespace(true); SkipWhitespace(true);
int startpos = (int)stream.Position;
string funcname = ReadToken(); //read return type string funcname = ReadToken(); //read return type
SkipWhitespace(true); SkipWhitespace(true);
int startpos = (int)stream.Position;
funcname += " " + ReadToken(); //read function name funcname += " " + ReadToken(); //read function name
// Try to parse argument names // Try to parse argument names

View file

@ -156,8 +156,10 @@ namespace CodeImp.DoomBuilder.GZBuilder.Windows
private static string GetExceptionDescription(Exception ex) private static string GetExceptionDescription(Exception ex)
{ {
//add to error logger // Add to error logger
General.ErrorLogger.Add(ErrorType.Error, "**** " + ex.Source + ": " + ex.Message + " ****"); General.WriteLogLine("***********************************************************");
General.ErrorLogger.Add(ErrorType.Error, ex.Source + ": " + ex.Message);
General.WriteLogLine("***********************************************************");
string message = "********EXCEPTION DETAILS********" string message = "********EXCEPTION DETAILS********"
+ Environment.NewLine + ex.Source + ": " + ex.Message + Environment.NewLine + ex.StackTrace; + Environment.NewLine + ex.Source + ": " + ex.Message + Environment.NewLine + ex.StackTrace;

View file

@ -30,10 +30,11 @@ namespace CodeImp.DoomBuilder
#region ================== Variables #region ================== Variables
private List<ErrorItem> errors; private readonly List<ErrorItem> errors;
private volatile bool changed; private volatile bool changed;
private volatile bool erroradded; private volatile bool erroradded;
private volatile bool warningadded; private volatile bool warningadded;
private object threadlock = new object(); //mxd
#endregion #endregion
@ -62,7 +63,7 @@ namespace CodeImp.DoomBuilder
// This clears the errors // This clears the errors
public void Clear() public void Clear()
{ {
lock(this) lock(threadlock)
{ {
changed = false; changed = false;
erroradded = false; erroradded = false;
@ -79,7 +80,7 @@ namespace CodeImp.DoomBuilder
{ {
string prefix = ""; string prefix = "";
lock(this) lock(threadlock)
{ {
//mxd. Don't add duplicate messages //mxd. Don't add duplicate messages
if(errors.Count == 0 || message != errors[errors.Count - 1].message || type != errors[errors.Count - 1].type) if(errors.Count == 0 || message != errors[errors.Count - 1].message || type != errors[errors.Count - 1].type)
@ -117,13 +118,24 @@ namespace CodeImp.DoomBuilder
} }
// This returns the list of errors // This returns the list of errors
internal List<ErrorItem> GetErrors() /*internal List<ErrorItem> GetErrors()
{ {
lock(this) lock(this)
{ {
List<ErrorItem> copylist = new List<ErrorItem>(errors); List<ErrorItem> copylist = new List<ErrorItem>(errors);
return copylist; return copylist;
} }
}*/
//mxd. This returns the list of errors starting at given index
internal IEnumerable<ErrorItem> GetErrors(int startindex)
{
if(startindex >= errors.Count) return new List<ErrorItem>();
ErrorItem[] result = new ErrorItem[errors.Count - startindex];
errors.CopyTo(startindex, result, 0, result.Length);
return result;
} }
#endregion #endregion

View file

@ -753,17 +753,17 @@ namespace CodeImp.DoomBuilder.Properties {
} }
} }
internal static byte[] ScriptConstant { internal static System.Drawing.Bitmap ScriptConstant {
get { get {
object obj = ResourceManager.GetObject("ScriptConstant", resourceCulture); object obj = ResourceManager.GetObject("ScriptConstant", resourceCulture);
return ((byte[])(obj)); return ((System.Drawing.Bitmap)(obj));
} }
} }
internal static byte[] ScriptError { internal static System.Drawing.Bitmap ScriptError {
get { get {
object obj = ResourceManager.GetObject("ScriptError", resourceCulture); object obj = ResourceManager.GetObject("ScriptError", resourceCulture);
return ((byte[])(obj)); return ((System.Drawing.Bitmap)(obj));
} }
} }
@ -774,10 +774,10 @@ namespace CodeImp.DoomBuilder.Properties {
} }
} }
internal static byte[] ScriptKeyword { internal static System.Drawing.Bitmap ScriptKeyword {
get { get {
object obj = ResourceManager.GetObject("ScriptKeyword", resourceCulture); object obj = ResourceManager.GetObject("ScriptKeyword", resourceCulture);
return ((byte[])(obj)); return ((System.Drawing.Bitmap)(obj));
} }
} }
@ -788,10 +788,10 @@ namespace CodeImp.DoomBuilder.Properties {
} }
} }
internal static byte[] ScriptSnippet { internal static System.Drawing.Bitmap ScriptSnippet {
get { get {
object obj = ResourceManager.GetObject("ScriptSnippet", resourceCulture); object obj = ResourceManager.GetObject("ScriptSnippet", resourceCulture);
return ((byte[])(obj)); return ((System.Drawing.Bitmap)(obj));
} }
} }
@ -942,6 +942,27 @@ namespace CodeImp.DoomBuilder.Properties {
} }
} }
internal static System.Drawing.Bitmap TextIndent {
get {
object obj = ResourceManager.GetObject("TextIndent", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap TextUnindent {
get {
object obj = ResourceManager.GetObject("TextUnindent", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap TextWhitespace {
get {
object obj = ResourceManager.GetObject("TextWhitespace", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap ThingStatistics { internal static System.Drawing.Bitmap ThingStatistics {
get { get {
object obj = ResourceManager.GetObject("ThingStatistics", resourceCulture); object obj = ResourceManager.GetObject("ThingStatistics", resourceCulture);

View file

@ -154,6 +154,9 @@
<data name="SaveAll" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="SaveAll" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SaveAll.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\SaveAll.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Update" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Update.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Monster2" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Monster2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Monster2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Monster2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -175,15 +178,27 @@
<data name="MixedThings" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="MixedThings" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\MixedThings.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\MixedThings.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="TextUnindent" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\TextUnindent.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Marine" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Marine" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Marine.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Marine.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="InfoPanelCollapse" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="InfoPanelCollapse" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\InfoPanelCollapse.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\InfoPanelCollapse.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="mergegeometry" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\mergegeometry.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Splash3_small" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Splash3_small" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Splash3_small.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Splash3_small.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Group" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Group.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="TagStatistics" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\TagStatistics.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="VisualVertices" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="VisualVertices" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\VisualVertices.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\VisualVertices.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -196,6 +211,9 @@
<data name="ScriptHelp" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="ScriptHelp" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ScriptHelp.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\ScriptHelp.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Light_animate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Light_animate.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="CommentSmile" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="CommentSmile" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\CommentSmile.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\CommentSmile.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -217,17 +235,14 @@
<data name="Redo" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Redo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Redo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Redo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Status0" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Brightness" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Status0.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Brightness.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Model" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Model" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Model.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Model.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="mergegeometry" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Configuration" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\mergegeometry.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Configuration.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ScriptSnippet" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ScriptSnippet.xpm;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="CommentProblem" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="CommentProblem" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\CommentProblem.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\CommentProblem.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -238,8 +253,8 @@
<data name="MLogo" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="MLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\MLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\MLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="UnknownImage" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Reload" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\UnknownImage.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Reload.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Paste" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Paste" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Paste.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Paste.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -248,7 +263,7 @@
<value>..\Resources\LightDisabled.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\LightDisabled.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="ScriptConstant" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="ScriptConstant" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ScriptConstant.xpm;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\ScriptConstant.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="FolderExplore" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="FolderExplore" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\FolderExplore.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\FolderExplore.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -265,12 +280,18 @@
<data name="CLogo" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="CLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\CLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\CLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Copy" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Copy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="WarningOff" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="WarningOff" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\WarningOff.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\WarningOff.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="List" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="List" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\List.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\List.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="TextWhitespace" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\TextWhitespace.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="LinedefColorPresets" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="LinedefColorPresets" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\LinedefColorPresets.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\LinedefColorPresets.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -286,8 +307,8 @@
<data name="Cursor" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Cursor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Cursor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Cursor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Grid2_arrowup" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Preferences" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Grid2_arrowup.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Preferences.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Reset" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Reset" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Reset.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Reset.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -313,6 +334,12 @@
<data name="NewMap" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="NewMap" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\NewMap2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\NewMap2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="About" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\About.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="GridDecrease" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\GridDecrease.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="SearchClear" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="SearchClear" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SearchClear.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\SearchClear.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -331,6 +358,9 @@
<data name="InfoLine" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="InfoLine" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\InfoLine.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\InfoLine.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Status10" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Status10.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="MissingTexture" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="MissingTexture" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\MissingTexture.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\MissingTexture.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -338,7 +368,7 @@
<value>..\Resources\ErrorLarge.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\ErrorLarge.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="ScriptError" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="ScriptError" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ScriptError.xpm;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\ScriptError.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Lightbulb" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Lightbulb" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Lightbulb.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Lightbulb.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -370,6 +400,9 @@
<data name="Model_selected" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Model_selected" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Model_selected.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Model_selected.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="GridDynamic" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\GridDynamic.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Collapse" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Collapse" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Collapse.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Collapse.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -382,11 +415,11 @@
<data name="Unlink" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Unlink" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Unlink.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Unlink.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Status10" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="TextIndent" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Status10.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\TextIndent.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Properties" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Status0" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Properties.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Status0.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Script2" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Script2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Script2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Script2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -406,6 +439,9 @@
<data name="Hourglass" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Hourglass" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Hourglass.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Hourglass.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="GridIncrease" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\GridIncrease.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Folder" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Folder" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Folder.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Folder.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -424,17 +460,20 @@
<data name="Status2" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Status2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Status2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Status2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Add" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Link" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Link" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Link.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Link.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Brightness" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="InfoPanelExpand" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Brightness.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\InfoPanelExpand.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="TagStatistics" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="ScriptSnippet" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\TagStatistics.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\ScriptSnippet.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Add" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Properties" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Properties.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Test" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Test" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Test.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Test.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -442,8 +481,8 @@
<data name="Undo" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Undo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Undo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Undo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="InfoPanelExpand" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="UnknownImage" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\InfoPanelExpand.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\UnknownImage.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Unpin" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Unpin" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Unpin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Unpin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -454,8 +493,14 @@
<data name="ViewTextureFloor" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="ViewTextureFloor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ViewTextureFloor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\ViewTextureFloor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Light_animate" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Grid2_arrowup" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Light_animate.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Grid2_arrowup.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="GroupRemove" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\GroupRemove.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Sky" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Sky.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Pin" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Pin" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Pin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Pin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -464,7 +509,7 @@
<value>..\Resources\ViewNormal.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\ViewNormal.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="ScriptKeyword" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="ScriptKeyword" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ScriptKeyword.xpm;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\ScriptKeyword.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="MissingThing" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="MissingThing" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\MissingThing.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\MissingThing.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -472,11 +517,14 @@
<data name="Monster3" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Monster3" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Monster3.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Monster3.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="SkySphere" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SkySphere.md3;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="DockerCollapse" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="DockerCollapse" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\DockerCollapse.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\DockerCollapse.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Copy" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="GroupAdd" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Copy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\GroupAdd.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="ViewBrightness" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="ViewBrightness" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ViewBrightness.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\ViewBrightness.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -511,43 +559,4 @@
<data name="Check" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Check" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Check.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Check.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="GridDynamic" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\GridDynamic.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="About" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\About.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Configuration" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Configuration.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Preferences" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Preferences.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Reload" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Reload.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Update" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Update.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Group" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Group.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="GroupAdd" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\GroupAdd.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="GroupRemove" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\GroupRemove.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="GridDecrease" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\GridDecrease.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="GridIncrease" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\GridIncrease.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Sky" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Sky.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="SkySphere" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SkySphere.md3;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root> </root>

View file

@ -20,7 +20,6 @@ using System;
using System.Globalization; using System.Globalization;
using System.Drawing; using System.Drawing;
using SlimDX; using SlimDX;
using Configuration = CodeImp.DoomBuilder.IO.Configuration; using Configuration = CodeImp.DoomBuilder.IO.Configuration;
#endregion #endregion
@ -38,7 +37,7 @@ namespace CodeImp.DoomBuilder.Rendering
private const float DARK_ADDITION = -0.2f; private const float DARK_ADDITION = -0.2f;
// Palette size // Palette size
private const int NUM_COLORS = 41; private const int NUM_COLORS = 49;
public const int NUM_THING_COLORS = 20; public const int NUM_THING_COLORS = 20;
public const int THING_COLORS_OFFSET = 20; public const int THING_COLORS_OFFSET = 20;
@ -84,16 +83,23 @@ namespace CodeImp.DoomBuilder.Rendering
public const int THINGCOLOR18 = 38; public const int THINGCOLOR18 = 38;
public const int THINGCOLOR19 = 39; public const int THINGCOLOR19 = 39;
public const int THREEDFLOORCOLOR = 40; //mxd public const int THREEDFLOORCOLOR = 40; //mxd
public const int SCRIPTINDICATOR = 41; //mxd. Additional Script Editor colors
public const int SCRIPTBRACEHIGHLIGHT = 42;
public const int SCRIPTBADBRACEHIGHLIGHT = 43;
public const int SCRIPTWHITESPACE = 44;
public const int SCRIPTSELECTIONFORE = 45;
public const int SCRIPTSELECTIONBACK = 46;
public const int STRINGS = 47;
public const int INCLUDES = 48;
#endregion #endregion
#region ================== Variables #region ================== Variables
// Colors // Colors
private PixelColor[] colors; private readonly PixelColor[] colors;
private PixelColor[] brightcolors; private readonly PixelColor[] brightcolors;
private PixelColor[] darkcolors; private readonly PixelColor[] darkcolors;
// Color-correction table // Color-correction table
private byte[] correctiontable; private byte[] correctiontable;
@ -125,6 +131,12 @@ namespace CodeImp.DoomBuilder.Rendering
public PixelColor Selection3D { get { return colors[SELECTION3D]; } internal set { colors[SELECTION3D] = value; } } public PixelColor Selection3D { get { return colors[SELECTION3D]; } internal set { colors[SELECTION3D] = value; } }
public PixelColor ScriptBackground { get { return colors[SCRIPTBACKGROUND]; } internal set { colors[SCRIPTBACKGROUND] = value; } } public PixelColor ScriptBackground { get { return colors[SCRIPTBACKGROUND]; } internal set { colors[SCRIPTBACKGROUND] = value; } }
public PixelColor ScriptIndicator { get { return colors[SCRIPTINDICATOR]; } internal set { colors[SCRIPTINDICATOR] = value; } }
public PixelColor ScriptBraceHighlight { get { return colors[SCRIPTBRACEHIGHLIGHT]; } internal set { colors[SCRIPTBRACEHIGHLIGHT] = value; } }
public PixelColor ScriptBadBraceHighlight { get { return colors[SCRIPTBADBRACEHIGHLIGHT]; } internal set { colors[SCRIPTBADBRACEHIGHLIGHT] = value; } }
public PixelColor ScriptWhitespace { get { return colors[SCRIPTWHITESPACE]; } internal set { colors[SCRIPTWHITESPACE] = value; } }
public PixelColor ScriptSelectionForeColor { get { return colors[SCRIPTSELECTIONFORE]; } internal set { colors[SCRIPTSELECTIONFORE] = value; } }
public PixelColor ScriptSelectionBackColor { get { return colors[SCRIPTSELECTIONBACK]; } internal set { colors[SCRIPTSELECTIONBACK] = value; } }
public PixelColor LineNumbers { get { return colors[LINENUMBERS]; } internal set { colors[LINENUMBERS] = value; } } public PixelColor LineNumbers { get { return colors[LINENUMBERS]; } internal set { colors[LINENUMBERS] = value; } }
public PixelColor PlainText { get { return colors[PLAINTEXT]; } internal set { colors[PLAINTEXT] = value; } } public PixelColor PlainText { get { return colors[PLAINTEXT]; } internal set { colors[PLAINTEXT] = value; } }
public PixelColor Comments { get { return colors[COMMENTS]; } internal set { colors[COMMENTS] = value; } } public PixelColor Comments { get { return colors[COMMENTS]; } internal set { colors[COMMENTS] = value; } }
@ -148,10 +160,32 @@ namespace CodeImp.DoomBuilder.Rendering
for(int i = 0; i < NUM_COLORS; i++) for(int i = 0; i < NUM_COLORS; i++)
{ {
// Read color // Read color
colors[i] = PixelColor.FromInt(cfg.ReadSetting("colors.color" + i.ToString(CultureInfo.InvariantCulture), -16711872)); //mxd. changed default color from transparent to light-green colors[i] = PixelColor.FromInt(cfg.ReadSetting("colors.color" + i.ToString(CultureInfo.InvariantCulture), 0));
} }
// Set new colors //mxd. Set new colors (previously these were defined in GZBuilder.default.cfg)
if(colors[BACKGROUND].ToInt() == 0) colors[BACKGROUND] = PixelColor.FromInt(-16777216);
if(colors[VERTICES].ToInt() == 0) colors[VERTICES] = PixelColor.FromInt(-11425537);
if(colors[LINEDEFS].ToInt() == 0) colors[LINEDEFS] = PixelColor.FromInt(-1);
if(colors[MODELWIRECOLOR].ToInt() == 0) colors[MODELWIRECOLOR] = PixelColor.FromInt(-4259937);
if(colors[INFOLINECOLOR].ToInt() == 0) colors[INFOLINECOLOR] = PixelColor.FromInt(-3750145);
if(colors[HIGHLIGHT].ToInt() == 0) colors[HIGHLIGHT] = PixelColor.FromInt(-21504);
if(colors[SELECTION].ToInt() == 0) colors[SELECTION] = PixelColor.FromInt(-49152);
if(colors[INDICATION].ToInt() == 0) colors[INDICATION] = PixelColor.FromInt(-128);
if(colors[GRID].ToInt() == 0) colors[GRID] = PixelColor.FromInt(-12171706);
if(colors[GRID64].ToInt() == 0) colors[GRID64] = PixelColor.FromInt(-13018769);
if(colors[CROSSHAIR3D].ToInt() == 0) colors[CROSSHAIR3D] = PixelColor.FromInt(-16711681); // Unused!
if(colors[HIGHLIGHT3D].ToInt() == 0) colors[HIGHLIGHT3D] = PixelColor.FromInt(-24576);
if(colors[SELECTION3D].ToInt() == 0) colors[SELECTION3D] = PixelColor.FromInt(-49152);
if(colors[SCRIPTBACKGROUND].ToInt() == 0) colors[SCRIPTBACKGROUND] = PixelColor.FromInt(-1);
if(colors[LINENUMBERS].ToInt() == 0) colors[LINENUMBERS] = PixelColor.FromInt(-13921873);
if(colors[PLAINTEXT].ToInt() == 0) colors[PLAINTEXT] = PixelColor.FromInt(-16777216);
if(colors[COMMENTS].ToInt() == 0) colors[COMMENTS] = PixelColor.FromInt(-16744448);
if(colors[KEYWORDS].ToInt() == 0) colors[KEYWORDS] = PixelColor.FromInt(-16741493);
if(colors[LITERALS].ToInt() == 0) colors[LITERALS] = PixelColor.FromInt(-16776961);
if(colors[CONSTANTS].ToInt() == 0) colors[CONSTANTS] = PixelColor.FromInt(-12566273);
// Set new thing colors
if(colors[THINGCOLOR00].ToInt() == 0) colors[THINGCOLOR00] = PixelColor.FromColor(Color.DimGray); if(colors[THINGCOLOR00].ToInt() == 0) colors[THINGCOLOR00] = PixelColor.FromColor(Color.DimGray);
if(colors[THINGCOLOR01].ToInt() == 0) colors[THINGCOLOR01] = PixelColor.FromColor(Color.RoyalBlue); if(colors[THINGCOLOR01].ToInt() == 0) colors[THINGCOLOR01] = PixelColor.FromColor(Color.RoyalBlue);
if(colors[THINGCOLOR02].ToInt() == 0) colors[THINGCOLOR02] = PixelColor.FromColor(Color.ForestGreen); if(colors[THINGCOLOR02].ToInt() == 0) colors[THINGCOLOR02] = PixelColor.FromColor(Color.ForestGreen);
@ -172,6 +206,17 @@ namespace CodeImp.DoomBuilder.Rendering
if(colors[THINGCOLOR17].ToInt() == 0) colors[THINGCOLOR17] = PixelColor.FromColor(Color.DarkOrange); if(colors[THINGCOLOR17].ToInt() == 0) colors[THINGCOLOR17] = PixelColor.FromColor(Color.DarkOrange);
if(colors[THINGCOLOR18].ToInt() == 0) colors[THINGCOLOR18] = PixelColor.FromColor(Color.DarkKhaki); if(colors[THINGCOLOR18].ToInt() == 0) colors[THINGCOLOR18] = PixelColor.FromColor(Color.DarkKhaki);
if(colors[THINGCOLOR19].ToInt() == 0) colors[THINGCOLOR19] = PixelColor.FromColor(Color.Goldenrod); if(colors[THINGCOLOR19].ToInt() == 0) colors[THINGCOLOR19] = PixelColor.FromColor(Color.Goldenrod);
//mxd. Set the rest of new colors (previously these were also defined in GZBuilder.default.cfg)
if(colors[THREEDFLOORCOLOR].ToInt() == 0) colors[THREEDFLOORCOLOR] = PixelColor.FromInt(-65536);
if(colors[SCRIPTINDICATOR].ToInt() == 0) colors[SCRIPTINDICATOR] = PixelColor.FromInt(-16711936);
if(colors[SCRIPTBRACEHIGHLIGHT].ToInt() == 0) colors[SCRIPTBRACEHIGHLIGHT] = PixelColor.FromInt(-16711681);
if(colors[SCRIPTBADBRACEHIGHLIGHT].ToInt() == 0) colors[SCRIPTBADBRACEHIGHLIGHT] = PixelColor.FromInt(-65536);
if(colors[SCRIPTWHITESPACE].ToInt() == 0) colors[SCRIPTWHITESPACE] = PixelColor.FromInt(-8355712);
if(colors[SCRIPTSELECTIONFORE].ToInt() == 0) colors[SCRIPTSELECTIONFORE] = PixelColor.FromInt(-1);
if(colors[SCRIPTSELECTIONBACK].ToInt() == 0) colors[SCRIPTSELECTIONBACK] = PixelColor.FromInt(-13395457);
if(colors[STRINGS].ToInt() == 0) colors[STRINGS] = PixelColor.FromInt(-6089451);
if(colors[INCLUDES].ToInt() == 0) colors[INCLUDES] = PixelColor.FromInt(-9868951);
// Create assist colors // Create assist colors
CreateAssistColors(); CreateAssistColors();

View file

@ -109,6 +109,8 @@ namespace CodeImp.DoomBuilder.Rendering
} }
catch(Exception) catch(Exception)
{ {
string debugerrors = string.Empty; //mxd
// Compiling failed, try with debug information // Compiling failed, try with debug information
try try
{ {
@ -116,16 +118,27 @@ namespace CodeImp.DoomBuilder.Rendering
fxdata.Seek(0, SeekOrigin.Begin); fxdata.Seek(0, SeekOrigin.Begin);
// Compile effect // Compile effect
fx = Effect.FromStream(General.Map.Graphics.Device, fxdata, null, null, null, ShaderFlags.Debug, null, out errors); fx = Effect.FromStream(General.Map.Graphics.Device, fxdata, null, null, null, ShaderFlags.Debug, null, out debugerrors);
if(!string.IsNullOrEmpty(errors)) if(!string.IsNullOrEmpty(debugerrors))
{ {
throw new Exception("Errors in effect file " + fxfile + ": " + errors); throw new Exception("Errors in effect file " + fxfile + ": " + debugerrors);
} }
} }
catch(Exception e) catch(Exception e)
{ {
//mxd. Try to get something. Anything!
string message;
if(!string.IsNullOrEmpty(debugerrors))
message = e.Message + "\nInitial message (debug mode): \"" + debugerrors + "\"";
else if(!string.IsNullOrEmpty(errors))
message = e.Message + "\nInitial message: \"" + errors + "\"";
else
message = e.ToString();
if(string.IsNullOrEmpty(message)) message = "No initial message...";
// No debug information, just crash // No debug information, just crash
throw new Exception(e.GetType().Name + " while loading effect " + fxfile + ": " + e.Message + "\nInitial message: " + errors); throw new Exception(e.GetType().Name + " while loading effect " + fxfile + ": " + message);
} }
} }

View file

@ -33,6 +33,8 @@ lexer3 // CPP-style, case-sensitive
7 = 4; // literal 7 = 4; // literal
16 = 2; // constants 16 = 2; // constants
37 = 5; // ident guides 37 = 5; // ident guides
6 = 6; // strings
9 = 7; // includes
keywordsindex = 0; keywordsindex = 0;
constantsindex = 1; constantsindex = 1;
@ -87,10 +89,10 @@ lexer35 // CPP-style, case-insensitive
7 = 4; // literal 7 = 4; // literal
16 = 2; // constants 16 = 2; // constants
37 = 5; // ident guides 37 = 5; // ident guides
6 = 6; // strings
9 = 7; // includes
keywordsindex = 0; keywordsindex = 0;
constantsindex = 1; constantsindex = 1;
snippetindex = 2; snippetindex = 2;
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -42,8 +42,7 @@ namespace CodeImp.DoomBuilder.Windows
FillList(); FillList();
checkerrors.Start(); checkerrors.Start();
checkshow.Checked = General.Settings.ShowErrorsWindow; checkshow.Checked = General.Settings.ShowErrorsWindow;
//mxd grid.Focus(); //mxd
grid.Focus();
} }
#endregion #endregion
@ -55,11 +54,12 @@ namespace CodeImp.DoomBuilder.Windows
{ {
// Fill the list with the items we don't have yet // Fill the list with the items we don't have yet
General.ErrorLogger.HasChanged = false; General.ErrorLogger.HasChanged = false;
List<ErrorItem> errors = General.ErrorLogger.GetErrors();
//mxd. Rewritten to get only the new items from the ErrorLogger
int startindex = grid.Rows.Count; int startindex = grid.Rows.Count;
for(int i = startindex; i < errors.Count; i++) IEnumerable<ErrorItem> errors = General.ErrorLogger.GetErrors(startindex);
foreach(ErrorItem e in errors)
{ {
ErrorItem e = errors[i];
Image icon = (e.type == ErrorType.Error) ? Properties.Resources.ErrorLarge : Properties.Resources.WarningLarge; Image icon = (e.type == ErrorType.Error) ? Properties.Resources.ErrorLarge : Properties.Resources.WarningLarge;
int index = grid.Rows.Add(); int index = grid.Rows.Add();
DataGridViewRow row = grid.Rows[index]; DataGridViewRow row = grid.Rows[index];
@ -145,7 +145,6 @@ namespace CodeImp.DoomBuilder.Windows
private void ErrorsForm_Shown(object sender, EventArgs e) private void ErrorsForm_Shown(object sender, EventArgs e)
{ {
if(grid.Rows.Count > 0) grid.Rows[0].Selected = false; if(grid.Rows.Count > 0) grid.Rows[0].Selected = false;
} }
private void grid_CellContentClick(object sender, DataGridViewCellEventArgs e) private void grid_CellContentClick(object sender, DataGridViewCellEventArgs e)