diff --git a/Build/Configurations/GZDoom_DoomDoom.cfg b/Build/Configurations/GZDoom_DoomDoom.cfg new file mode 100644 index 00000000..8932d6a2 --- /dev/null +++ b/Build/Configurations/GZDoom_DoomDoom.cfg @@ -0,0 +1,76 @@ +/*************************************************************\ + Doom Builder 2 Game Configuration for ZDoom-compatible port +\*************************************************************/ + +// This is required to prevent accidental use of a different configuration +type = "Doom Builder 2 Game Configuration"; + +// This is the title to show for this game +game = "GZDoom: Doom (Doom format)"; + +// This is the simplified game engine/sourceport name +engine = "gzdoom"; + +// ******************************************************* +// * * +// * Note: all the elements that could be factorized * +// * because they were common to ZDoom, GZDoom and * +// * Zandronum have been moved to ZDoom_common.cfg. * +// * * +// ******************************************************* + +// STANDARD ZDOOM SETTINGS +// Settings common to all games and all map formats +include("Includes\\ZDoom_common.cfg", "common"); + +// Settings common to Doom map format +include("Includes\\ZDoom_common.cfg", "mapformat_doom"); + +// Settings common to Doom games +include("Includes\\Game_Doom.cfg"); + +// Default thing filters +// (these are not required, just useful for new users) +thingsfilters +{ + include("Includes\\Doom_misc.cfg", "thingsfilters"); +} + +// Depends on both game and map format +gamedetect +{ + // Map format + include("Includes\\ZDoom_misc.cfg", "gamedetect_doom"); + // Game scheme + include("Includes\\Doom_misc.cfg", "gamedetect_either"); +} + +// THING TYPES +// Each engine has its own additional thing types +// Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom +thingtypes +{ + // Basic game actors + include("Includes\\Doom_things.cfg"); + include("Includes\\Doom2_things.cfg"); + // Additional ZDoom actors for that game + include("Includes\\ZDoom_things.cfg", "doom"); + // Standard ZDoom actors + include("Includes\\ZDoom_things.cfg", "zdoom"); + // Additional actors from the engine + include("Includes\\GZDoom_things.cfg", "gzdoom"); + include("Includes\\GZDoom_things.cfg", "gzdoom_lights"); +} + +// ENUMERATIONS +// Each engine has its own additional thing types +// These are enumerated lists for linedef types and UDMF fields. +enums +{ + // Basic game enums + include("Includes\\Doom_misc.cfg", "enums"); + // Standard ZDoom enums + include("Includes\\ZDoom_misc.cfg", "enums"); + // Additional ZDoom enums for that game + include("Includes\\ZDoom_misc.cfg", "enums_doom"); +} diff --git a/Build/Configurations/GZDoom_HexenHexen.cfg b/Build/Configurations/GZDoom_HexenHexen.cfg new file mode 100644 index 00000000..c9c76d98 --- /dev/null +++ b/Build/Configurations/GZDoom_HexenHexen.cfg @@ -0,0 +1,75 @@ +/*************************************************************\ + Doom Builder 2 Game Configuration for ZDoom-compatible port +\*************************************************************/ + +// This is required to prevent accidental use of a different configuration +type = "Doom Builder 2 Game Configuration"; + +// This is the title to show for this game +game = "GZDoom: Hexen (Hexen format)"; + +// This is the simplified game engine/sourceport name +engine = "gzdoom"; + +// ******************************************************* +// * * +// * Note: all the elements that could be factorized * +// * because they were common to ZDoom, GZDoom and * +// * Zandronum have been moved to ZDoom_common.cfg. * +// * * +// ******************************************************* + +// STANDARD ZDOOM SETTINGS +// Settings common to all games and all map formats +include("Includes\\ZDoom_common.cfg", "common"); + +// Settings common to Hexen map format +include("Includes\\ZDoom_common.cfg", "mapformat_hexen"); + +// Settings common to Hexen games +include("Includes\\Game_Hexen.cfg"); + +// Default thing filters +// (these are not required, just useful for new users) +thingsfilters +{ + include("Includes\\Hexen_misc.cfg", "thingsfilters"); +} + +// Depends on both game and map format +gamedetect +{ + // Map format + include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen"); + // Game scheme + include("Includes\\Hexen_misc.cfg", "gamedetect"); +} + +// THING TYPES +// Each engine has its own additional thing types +// Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom +thingtypes +{ + // Basic game actors + include("Includes\\Hexen_things.cfg"); + // Additional ZDoom actors for that game + include("Includes\\ZDoom_things.cfg", "hexen"); + // Standard ZDoom actors + include("Includes\\ZDoom_things.cfg", "zdoom"); + // Additional actors from the engine + include("Includes\\GZDoom_things.cfg", "gzdoom"); + include("Includes\\GZDoom_things.cfg", "gzdoom_lights"); +} + +// ENUMERATIONS +// Each engine has its own additional thing types +// These are enumerated lists for linedef types and UDMF fields. +enums +{ + // Basic game enums + include("Includes\\Doom_misc.cfg", "enums"); + // Standard ZDoom enums + include("Includes\\ZDoom_misc.cfg", "enums"); + // Additional ZDoom enums for that game + include("Includes\\ZDoom_misc.cfg", "enums_hexen"); +} diff --git a/Build/Configurations/GZDoom_HexenUDMF.cfg b/Build/Configurations/GZDoom_HexenUDMF.cfg new file mode 100644 index 00000000..3a0056d2 --- /dev/null +++ b/Build/Configurations/GZDoom_HexenUDMF.cfg @@ -0,0 +1,75 @@ +/*************************************************************\ + Doom Builder 2 Game Configuration for ZDoom-compatible port +\*************************************************************/ + +// This is required to prevent accidental use of a different configuration +type = "Doom Builder 2 Game Configuration"; + +// This is the title to show for this game +game = "GZDoom: Hexen (UDMF)"; + +// This is the simplified game engine/sourceport name +engine = "gzdoom"; + +// ******************************************************* +// * * +// * Note: all the elements that could be factorized * +// * because they were common to ZDoom, GZDoom and * +// * Zandronum have been moved to ZDoom_common.cfg. * +// * * +// ******************************************************* + +// STANDARD ZDOOM SETTINGS +// Settings common to all games and all map formats +include("Includes\\ZDoom_common.cfg", "common"); + +// Settings common to text map format +include("Includes\\ZDoom_common.cfg", "mapformat_udmf"); + +// Settings common to Hexen games +include("Includes\\Game_Hexen.cfg"); + +// Default thing filters +// (these are not required, just useful for new users) +thingsfilters +{ + include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf"); +} + +// Depends on both game and map format +gamedetect +{ + // Map format + include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf"); + // Game scheme + include("Includes\\Hexen_misc.cfg", "gamedetect"); +} + +// THING TYPES +// Each engine has its own additional thing types +// Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom +thingtypes +{ + // Basic game actors + include("Includes\\Hexen_things.cfg"); + // Additional ZDoom actors for that game + include("Includes\\ZDoom_things.cfg", "hexen"); + // Standard ZDoom actors + include("Includes\\ZDoom_things.cfg", "zdoom"); + // Additional actors from the engine + include("Includes\\GZDoom_things.cfg", "gzdoom"); + include("Includes\\GZDoom_things.cfg", "gzdoom_lights"); +} + +// ENUMERATIONS +// Each engine has its own additional thing types +// These are enumerated lists for linedef types and UDMF fields. +enums +{ + // Basic game enums + include("Includes\\Doom_misc.cfg", "enums"); + // Standard ZDoom enums + include("Includes\\ZDoom_misc.cfg", "enums"); + // Additional ZDoom enums for that game + include("Includes\\ZDoom_misc.cfg", "enums_hexen"); +} diff --git a/Build/Configurations/GZDoom_StrifeUDMF.cfg b/Build/Configurations/GZDoom_StrifeUDMF.cfg new file mode 100644 index 00000000..10732166 --- /dev/null +++ b/Build/Configurations/GZDoom_StrifeUDMF.cfg @@ -0,0 +1,75 @@ +/*************************************************************\ + Doom Builder 2 Game Configuration for ZDoom-compatible port +\*************************************************************/ + +// This is required to prevent accidental use of a different configuration +type = "Doom Builder 2 Game Configuration"; + +// This is the title to show for this game +game = "GZDoom: Strife (UDMF)"; + +// This is the simplified game engine/sourceport name +engine = "gzdoom"; + +// ******************************************************* +// * * +// * Note: all the elements that could be factorized * +// * because they were common to ZDoom, GZDoom and * +// * Zandronum have been moved to ZDoom_common.cfg. * +// * * +// ******************************************************* + +// STANDARD ZDOOM SETTINGS +// Settings common to all games and all map formats +include("Includes\\ZDoom_common.cfg", "common"); + +// Settings common to text map format +include("Includes\\ZDoom_common.cfg", "mapformat_udmf"); + +// Settings common to Strife games +include("Includes\\Game_Strife.cfg"); + +// Default thing filters +// (these are not required, just useful for new users) +thingsfilters +{ + include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf"); +} + +// Depends on both game and map format +gamedetect +{ + // Map format + include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf"); + // Game scheme + include("Includes\\Strife_misc.cfg", "gamedetect"); +} + +// THING TYPES +// Each engine has its own additional thing types +// Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom +thingtypes +{ + // Basic game actors + include("Includes\\Strife_things.cfg"); + // Additional ZDoom actors for that game + include("Includes\\ZDoom_things.cfg", "strife"); + // Standard ZDoom actors + include("Includes\\ZDoom_things.cfg", "zdoom"); + // Additional actors from the engine + include("Includes\\GZDoom_things.cfg", "gzdoom"); + include("Includes\\GZDoom_things.cfg", "gzdoom_lights"); +} + +// ENUMERATIONS +// Each engine has its own additional thing types +// These are enumerated lists for linedef types and UDMF fields. +enums +{ + // Basic game enums + include("Includes\\Doom_misc.cfg", "enums"); + // Standard ZDoom enums + include("Includes\\ZDoom_misc.cfg", "enums"); + // Additional ZDoom enums for that game + include("Includes\\ZDoom_misc.cfg", "enums_strife"); +} diff --git a/Build/Configurations/Includes/Game_Hexen.cfg b/Build/Configurations/Includes/Game_Hexen.cfg new file mode 100644 index 00000000..813e21f5 --- /dev/null +++ b/Build/Configurations/Includes/Game_Hexen.cfg @@ -0,0 +1,36 @@ +// Default lump name for new map + defaultlumpname = "MAP01"; + skyflatname = "F_SKY"; + basegame = 3; + + // Decorate actors to include depending on actor game property + decorategames = "hexen raven"; + + // Skill levels + skills + { + include("Hexen_misc.cfg", "skills"); + } + + // Door making + makedoortrack = "D_END2"; + + // Default thing filters + // (these are not required, just useful for new users) + /*thingsfilters + { + include("Hexen_misc.cfg", "thingsfilters"); + } */ + + // How to compare thing flags (for the stuck things error checker) + thingflagscompare + { + include("Hexen_misc.cfg", "thingflagscompare"); + } + + // Default texture sets + // (these are not required, but useful for new users) + texturesets + { + include("Hexen_texturesets.cfg"); + } \ No newline at end of file diff --git a/Build/Configurations/Includes/Hexen_sectors.cfg b/Build/Configurations/Includes/Hexen_sectors.cfg new file mode 100644 index 00000000..ece1054b --- /dev/null +++ b/Build/Configurations/Includes/Hexen_sectors.cfg @@ -0,0 +1,35 @@ + +0 = "Normal"; +1 = "Light Phased"; +2 = "Light Sequence Start"; +3 = "Light Sequence Special 1"; +4 = "Light Sequence Special 2"; +26 = "Stairs Special 1"; +27 = "Stairs Special 2"; +198 = "Light Indoor 2"; +199 = "Light Indoor 1"; +200 = "Sky 2 (MAPINFO)"; +201 = "Scroll North (slow)"; +202 = "Scroll North (medium)"; +203 = "Scroll North (fast)"; +204 = "Scroll East (slow)"; +205 = "Scroll East (medium)"; +206 = "Scroll East (fast)"; +207 = "Scroll South (slow)"; +208 = "Scroll South (medium)"; +209 = "Scroll South (fast)"; +210 = "Scroll West (slow)"; +211 = "Scroll West (medium)"; +212 = "Scroll West (fast)"; +213 = "Scroll NorthWest (slow)"; +214 = "Scroll NorthWest (medium)"; +215 = "Scroll NorthWest (fast)"; +216 = "Scroll NorthEast (slow)"; +217 = "Scroll NorthEast (medium)"; +218 = "Scroll NorthEast (fast)"; +219 = "Scroll SouthEast (slow)"; +220 = "Scroll SouthEast (medium)"; +221 = "Scroll SouthEast (fast)"; +222 = "Scroll SouthWest (slow)"; +223 = "Scroll SouthWest (medium)"; +224 = "Scroll SouthWest (fast)"; diff --git a/Build/Configurations/Includes/Hexen_texturesets.cfg b/Build/Configurations/Includes/Hexen_texturesets.cfg new file mode 100644 index 00000000..e69de29b diff --git a/Build/Configurations/Includes/Hexen_things.cfg b/Build/Configurations/Includes/Hexen_things.cfg new file mode 100644 index 00000000..dfbeae50 --- /dev/null +++ b/Build/Configurations/Includes/Hexen_things.cfg @@ -0,0 +1,1599 @@ + +players +{ + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + error = 2; + blocking = 2; + + 1 + { + title = "Player 1 start"; + sprite = "CLERA1"; + } + 2 + { + title = "Player 2 start"; + sprite = "CLERA1"; + } + 3 + { + title = "Player 3 start"; + sprite = "CLERA1"; + } + 4 + { + title = "Player 4 start"; + sprite = "CLERA1"; + } + 9100 + { + title = "Player 5 Start"; + sprite = "CLERA1"; + } + 9101 + { + title = "Player 6 Start"; + sprite = "CLERA1"; + } + 9102 + { + title = "Player 7 Start"; + sprite = "CLERA1"; + } + 9103 + { + title = "Player 8 Start"; + sprite = "CLERA1"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "CLERR0"; + } +} + +teleports +{ + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + error = 1; + blocking = 0; + + 14 + { + title = "Teleport Landing"; + sprite = "TELEA0"; + } + 140 + { + title = "Teleport Smoke"; + sprite = "TSMKA0"; + } +} + +monsters +{ + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + error = 2; + blocking = 2; + + 107 + { + title = "Centaur"; + sprite = "CENTA1"; + } + 10060 + { + title = "Affrit"; + sprite = "FDMNA1"; + } + 115 + { + title = "Slaughtaur"; + sprite = "CENTF1"; + } + 34 + { + title = "Reiver"; + sprite = "WRTHA1"; + } + 10011 + { + title = "Reiver (buried)"; + sprite = "WRTHA1"; + } + 254 + { + title = "Dragon Lich"; + sprite = "DRAGC1"; + arg0 + { + title = "Destination Thing Tag"; + type = 14; + } + arg1 + { + title = "Destination Thing Tag"; + type = 14; + } + arg2 + { + title = "Destination Thing Tag"; + type = 14; + } + arg3 + { + title = "Destination Thing Tag"; + type = 14; + } + arg4 + { + title = "Destination Thing Tag"; + type = 14; + } + } + 10030 + { + title = "Ettin"; + sprite = "ETTNA1"; + width = 25; + } + 8020 + { + title = "Wendigo"; + sprite = "ICEYA1"; + width = 22; + } + 31 + { + title = "Green Chaos Serpent"; + sprite = "DEMNA1"; + width = 32; + } + 8080 + { + title = "Brown Chaos Serpent"; + sprite = "DEM2A1"; + width = 32; + } + 114 + { + title = "Dark Bishop"; + sprite = "BISHA1"; + width = 22; + } + 121 + { + title = "Stalker"; + sprite = "SSPTB0"; + width = 32; + } + 120 + { + title = "Stalker Boss"; + sprite = "SSPTD0"; + width = 32; + } + 10100 + { + title = "Zedek (fighter)"; + sprite = "PLAYE8"; + width = 16; + } + 10101 + { + title = "Traductus (cleric)"; + sprite = "CLERE8"; + width = 16; + } + 10102 + { + title = "Menelkir (mage)"; + sprite = "MAGEE8"; + width = 16; + } + 10080 + { + title = "Heresiarch"; + sprite = "SORCA1"; + width = 40; + } + 10200 + { + title = "Korax"; + sprite = "KORXA1"; + width = 65; + } +} + +weapons +{ + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + blocking = 0; + + 10 + { + title = "Serpent Staff"; + sprite = "WCSSA0"; + } + 8010 + { + title = "Timon's Axe"; + sprite = "WFAXA0"; + } + 53 + { + title = "Frost Shards"; + sprite = "WMCSA0"; + } + 8009 + { + title = "Firestorm"; + sprite = "WCFMA0"; + } + 123 + { + title = "Hammer Of Retribution"; + sprite = "WFHMA0"; + } + 8040 + { + title = "Arc Of Death"; + sprite = "WMLGG0"; + } + 18 + { + title = "Wraithverge Piece 1"; + sprite = "WCH1A0"; + } + 19 + { + title = "Wraithverge Piece 2"; + sprite = "WCH2A0"; + } + 20 + { + title = "Wraithverge Piece 3"; + sprite = "WCH3A0"; + } + 12 + { + title = "Quietus Piece 1"; + sprite = "WFR1A0"; + } + 13 + { + title = "Quietus Piece 2"; + sprite = "WFR2A0"; + } + 16 + { + title = "Quietus Piece 3"; + sprite = "WFR3A0"; + } + 21 + { + title = "BloodScourge Piece 1"; + sprite = "WMS1A0"; + } + 22 + { + title = "BloodScourge Piece 2"; + sprite = "WMS2A0"; + } + 23 + { + title = "BloodScourge Piece 3"; + sprite = "WMS3A0"; + } +} + +ammunition +{ + color = 6; // Brown + arrow = 0; + title = "Mana"; + width = 8; + sort = 1; + blocking = 0; + + 122 + { + title = "Blue Mana"; + sprite = "MAN1H0"; + } + 124 + { + title = "Green Mana"; + sprite = "MAN2H0"; + } + 8004 + { + title = "Combined Mana"; + sprite = "MAN3A0"; + } +} + +health +{ + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 20; + sort = 1; + blocking = 0; + + 8005 + { + title = "Mesh Armor"; + sprite = "ARM1A0"; + } + 8006 + { + title = "Falcon Shield"; + sprite = "ARM2A0"; + } + 8007 + { + title = "Platinum Helm"; + sprite = "ARM3A0"; + } + 8008 + { + title = "Amulet Of Warding"; + sprite = "ARM4A0"; + } + 81 + { + title = "Crystal Vial"; + sprite = "PTN1A0"; + } +} + +powerups +{ + color = 9; // Light Blue + arrow = 0; + title = "Artifacts"; + width = 20; + height = 20; + sort = 1; + blocking = 0; + + 30 + { + title = "Porkalator"; + sprite = "PORKB0"; + } + 32 + { + title = "Mystic Urn"; + sprite = "SPHLA0"; + } + 33 + { + title = "Torch"; + sprite = "TRCHA0"; + } + 36 + { + title = "Chaos Device"; + sprite = "ATLPA0"; + } + 82 + { + title = "Quartz Flask"; + sprite = "PTN2A0"; + } + 83 + { + title = "Wings Of Wrath"; + sprite = "SOARA0"; + } + 84 + { + title = "Icon Of The Defender"; + sprite = "INVUA0"; + } + 86 + { + title = "Dark Servant"; + sprite = "SUMNA0"; + } + 10110 + { + title = "Disc Of Repulsion"; + sprite = "BLSTB0"; + } + 10120 + { + title = "Mystic Ambit Incant"; + sprite = "HRADB0"; + } + 10040 + { + title = "Banishment Device"; + sprite = "TELOA0"; + } + 8000 + { + title = "Flechette"; + sprite = "PSBGA0"; + } + 8002 + { + title = "Boots Of Speed"; + sprite = "SPEDB0"; + } + 8003 + { + title = "Krater Of Might"; + sprite = "BMANA0"; + } + 8041 + { + title = "Dragonskin Bracers"; + sprite = "BRACC0"; + } +} + +puzzle +{ + color = 7; // Light Grey + arrow = 1; + title = "Puzzle Items"; + width = 20; + sort = 1; + blocking = 0; + + 9002 + { + title = "Yorick's Skull"; + sprite = "ASKUA0"; + } + 9003 + { + title = "Heart Of D'Sparil"; + sprite = "ABGMA0"; + } + 9004 + { + title = "Ruby Planet"; + sprite = "AGMRA0"; + } + 9005 + { + title = "Emerald Planet 1"; + sprite = "AGMGA0"; + } + 9006 + { + title = "Sapphire Planet 1"; + sprite = "AGMBA0"; + } + 9007 + { + title = "Daemon Codex"; + sprite = "ABK1A0"; + } + 9008 + { + title = "Liber Obscura"; + sprite = "ABK2A0"; + } + 9009 + { + title = "Emerald Planet 2"; + sprite = "AGG2A0"; + } + 9010 + { + title = "Sapphire Planet 2"; + sprite = "AGMBA0"; + } + 9011 + { + title = "Yorick's Statue"; + sprite = "STWNA0"; + width = 10; + } + 9012 + { + title = "Pedestal Of D'Sparil"; + sprite = "GMPDA0"; + width = 10; + } + 9014 + { + title = "Flame mask"; + sprite = "ASK2A0"; + } + 9015 + { + title = "Glaive seal"; + sprite = "AFWPA0"; + } + 9016 + { + title = "Holy relic"; + sprite = "ACWPA0"; + width = 10; + } + 9017 + { + title = "Sigil of the magus"; + sprite = "AMWPA0"; + width = 10; + } + 9018 + { + title = "Clock Gear (steel)"; + sprite = "AGERA0"; + } + 9019 + { + title = "Clock Gear (bronze)"; + sprite = "AGR2A0"; + } + 9020 + { + title = "Clock Gear (steel and bronze)"; + sprite = "AGR3A0"; + } + 9021 + { + title = "Clock Gear (bronze and steel)"; + sprite = "AGR4A0"; + } +} + +keys +{ + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 8; + sort = 1; + blocking = 0; + + 8030 + { + title = "Steel Key"; + sprite = "KEY1A0"; + } + 8031 + { + title = "Cave Key"; + sprite = "KEY2A0"; + } + 8032 + { + title = "Axe Key"; + sprite = "KEY3A0"; + } + 8033 + { + title = "Fire Key"; + sprite = "KEY4A0"; + } + 8034 + { + title = "Emerald Key"; + sprite = "KEY5A0"; + } + 8035 + { + title = "Dungeon Key"; + sprite = "KEY6A0"; + } + 8036 + { + title = "Silver Key"; + sprite = "KEY7A0"; + } + 8037 + { + title = "Rusty Key"; + sprite = "KEY8A0"; + } + 8038 + { + title = "Horn Key"; + sprite = "KEY9A0"; + } + 8039 + { + title = "Swamp Key"; + sprite = "KEYAA0"; + } + 8200 + { + title = "Castle Key"; + sprite = "KEYBA0"; + } +} + +obstacles +{ + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + blocking = 2; + + 8064 + { + title = "Suit Of Armor"; + sprite = "SUITA0"; + width = 16; + arg0 + { + title = "Contained Item"; + type = 11; + enum = "spawnthing"; + } + } + 77 + { + title = "Battle Rag Banner"; + sprie = "BNR1A0"; + width = 8; + } + 8100 + { + title = "Barrel"; + sprite = "BARLA0"; + width = 15; + } + 8065 + { + title = "Bell"; + sprite = "BBLLA0"; + width = 56; + } + 103 + { + title = "Pillar With Vase"; + sprite = "VASEA0"; + width = 12; + } + 5 + { + title= "Winged Statue"; + sprite = "STTWA0"; + width = 10; + } + 98 + { + title = "Small Rock (brown)"; + sprite = "RKBSA0"; + width = 15; + } + 97 + { + title = "Big Rock (brown)"; + sprite = "RKBLA0"; + width = 17; + } + 99 + { + title = "Big Rock (grey)"; + sprite = "RKBKA0"; + } + 57 + { + title = "Stalactite (small)"; + sprite = "SLC3A0"; + width = 8; + hangs = 1; + } + 56 + { + title = "Stalactite (medium)"; + sprite = "SLC2A0"; + width = 6; + hangs = 1; + } + 52 + { + title = "Stalactite (large)"; + sprite = "SLC1A0"; + width = 8; + hangs = 1; + } + 48 + { + title = "Stalagmite (pillar)"; + sprite = "SGMPA0"; + width = 8; + } + 51 + { + title = "Stalagmite (small)"; + sprite = "SGM3A0"; + width = 8; + } + 50 + { + title = "Stalagmite (medium)"; + sprite = "SGM2A0"; + width = 6; + } + 49 + { + title = "Stalagmite (large)"; + sprite = "SGM1A0"; + width = 8; + } + 80 + { + title = "Gnarled Tree 1"; + sprite = "TRE6A0"; + width = 22; + } + 87 + { + title = "Gnarled Tree 2"; + sprite = "TRE7A0"; + width = 22; + } + 78 + { + title = "Tall Tree 1"; + sprite = "TRE5A0"; + width = 15; + } + 79 + { + title = "Tall Tree 2"; + sprite = "TRE4A0"; + width = 15; + } + 8067 + { + title = "Iron Maiden"; + sprite = "IRONA0"; + width = 12; + } + 63 + { + title = "Tombstone (RIP)"; + sprite = "TMS1A0"; + width = 10; + } + 64 + { + title = "Tombstone (Shane)"; + sprite = "TMS2A0"; + width = 10; + } + 65 + { + title = "Tombstone (slimy)"; + sprite = "TMS3A0"; + width = 10; + } + 66 + { + title = "Tombstone (Brian R)"; + sprite = "TMS4A0"; + width = 10; + } + 67 + { + title = "Tombstone (cross circle)"; + sprite = "TMS5A0"; + width = 10; + } + 68 + { + title = "Tombstone (small cross)"; + sprite = "TMS6A0"; + width = 8; + } + 69 + { + title = "Tombstone (Brian P)"; + sprite = "TMS7A0"; + width = 8; + } + 96 + { + title = "Ice Spike (tiny)"; + sprite = "ICM4A0"; + width = 4; + } + 95 + { + title = "Ice Spike (small)"; + sprite = "ICM3A0"; + width = 5; + } + 94 + { + title = "Ice Spike (medium)"; + sprite = "ICM2A0"; + width = 5; + } + 93 + { + title = "Ice Spike (large)"; + sprite = "ICM1A0"; + width = 8; + } + 92 + { + title = "Icicle (tiny)"; + sprite = "ICT4A0"; + width = 4; + hangs = 1; + } + 91 + { + title = "Icicle (small)"; + sprite = "ICT3A0"; + width = 4; + hangs = 1; + } + 90 + { + title = "Icicle (medium)"; + sprite = "ICT2A0"; + width = 5; + hangs = 1; + } + 89 + { + title = "Icicle (large)"; + sprite = "ICT1A0"; + width = 8; + hangs = 1; + } + 8068 + { + title = "Evergreen Tree"; + sprite = "XMASA0"; + width = 11; + } + 8062 + { + title = "Rotten Dead Tree (destructible)"; + sprite = "TRDTA0"; + width = 15; + } + 24 + { + title = "Dead Tree"; + sprite = "TRE1A0"; + width = 10; + } + 25 + { + title = "Leafless Tree"; + sprite = "TRE1A0"; + width = 15; + } + 60 + { + title = "Dead Tree (mossy)"; + sprite = "SWMVA0"; + width = 8; + } + 26 + { + title = "Mossy Tree 1"; + sprite = "TRE2A0"; + width = 10; + } + 27 + { + title = "Mossy Tree 2"; + sprite = "TRE3A0"; + width = 10; + } + 88 + { + title = "Log"; + sprite = "SLTRA0"; + } + 29 + { + title= "Tree Stump (bare)"; + sprite = "STM2A0"; + width = 12; + } + 28 + { + title= "Tree Stump (burned)"; + sprite = "STM1A0"; + width = 12; + } + 37 + { + title = "Tree Stump 1"; + sprite = "STM3A0"; + } + 38 + { + title = "Tree Stump 2"; + sprite = "STM4A0"; + } + 8051 + { + title = "Bronze Gargoyle (short)"; + sprite = "GAR8A0"; + width = 14; + } + 8047 + { + title = "Bronze Gargoyle (tall)"; + sprite = "GAR4A0"; + width = 14; + } + 8044 + { + title = "Rusty Gargoyle (tall)"; + sprite = "GAR1A0"; + width = 14; + } + 76 + { + title = "Ice Gargoyle (short)"; + sprite = "STT5A0"; + width = 14; + } + 73 + { + title = "Ice Gargoyle (tall)"; + sprite = "STT3A0"; + width = 14; + } + 8050 + { + title = "Lava Gargoyle (short)"; + sprite = "GAR7A0"; + width = 14; + } + 8046 + { + title = "Lava Gargoyle (tall)"; + sprite = "GAR3A0"; + width = 14; + } + 8049 + { + title = "Dark Lava Gargoyle (short)"; + sprite = "GAR6A0"; + width = 14; + } + 8045 + { + title = "Dark Lava Gargoyle (tall)"; + sprite = "GAR2A0"; + width = 14; + } + 74 + { + title = "Stone Gargoyle (short)"; + sprite = "STT4A0"; + width = 14; + } + 72 + { + title = "Stone Gargoyle (tall)"; + sprite = "STT2A0"; + width = 14; + } + 8052 + { + title = "Steel Gargoyle (short)"; + sprite = "GAR9A0"; + width = 14; + } + 8048 + { + title = "Steel Gargoyle (tall)"; + sprite = "GAR5A0"; + width = 14; + } +} + +lights +{ + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 20; + blocking = 2; + sort = 1; + + 17 + { + title = "Chandelier (lit)"; + sprite = "CDLRA0"; + hangs = 1; + } + 8063 + { + title = "Chandelier (unlit)"; + sprite = "CDLRD0"; + hangs = 1; + } + 8066 + { + title = "Blue Candle (lit)"; + sprite = "CANDA0"; + } + 8502 + { + title = "Candle With Web (unlit)"; + sprite = "TST3A0"; + } + 8503 + { + title = "Small Gray Candle (unlit)"; + sprite = "TST4A0"; + } + 8504 + { + title = "Small Candle (unlit)"; + sprite = "TST5A0"; + } + 119 + { + title = "3 Candles (lit)"; + sprite = "CNDLA0"; + } + 10500 + { + title = "Small Flame (timed)"; + sprite = "FFSMA0"; + } + 10501 + { + title = "Small Flame"; + sprite = "FFSMA0"; + } + 10502 + { + title = "Large Flame (timed)"; + sprite = "FFLGD0"; + } + 10503 + { + title = "Large Flame"; + sprite = "FFLGD0"; + } + 54 + { + title = "Wall Torch (lit)"; + sprite = "WLTRB0"; + } + 55 + { + title = "Wall Torch (unlit)"; + sprite = "WLTRI0"; + } + 8042 + { + title = "Minotaur Statue (lit)"; + sprite = "FBULB0"; + } + 8043 + { + title = "Minotaur Statue (unlit)"; + sprite = "FBULH0"; + } + 8069 + { + title = "Cauldron (lit)"; + sprite = "CDRNG0"; + width = 12; + } + 8070 + { + title = "Cauldron (unlit)"; + sprite = "CDRNA0"; + width = 12; + } + 8060 + { + title = "Skull With Flame"; + sprite = "FSKLA0"; + width = 5; + } + 8061 + { + title = "Brazier With Flame"; + sprite = "BRTRB0"; + width = 6; + } + 116 + { + title = "Twined Torch (lit)"; + sprite = "TWTRA0"; + width = 10; + } + 117 + { + title = "Twined Torch (unlit)"; + sprite = "TWTRI0"; + width = 10; + } +} + +decoration +{ + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 20; + sort = 1; + blocking = 0; + + 8071 + { + title = "Chain (short)"; + sprite = "CHNSA0"; + width = 4; + hangs = 1; + height = 32; + } + 8072 + { + title = "Chain (long)"; + sprite = "CHNSB0"; + width = 4; + hangs = 1; + height = 64; + } + 8073 + { + title = "Hook With Heart"; + sprite = "CHNSC0"; + width = 4; + hangs = 1; + } + 8077 + { + title = "Hook With Skull"; + sprite = "CHNSG0"; + width = 4; + hangs = 1; + } + 8074 + { + title = "Chain With Large Hook"; + sprite = "CHNSD0"; + width = 4; + hangs = 1; + height = 32; + } + 8075 + { + title = "Chain With Small Hook"; + sprite = "CHNSE0"; + width = 4; + hangs = 1; + height = 32; + } + 8076 + { + title = "Chain with Spike Ball"; + sprite = "CHNSF0"; + width = 4; + hangs = 1; + height = 32; + } + 8103 + { + title = "Hanging Bucket"; + sprite = "BCKTA0"; + width = 8; + hangs = 1; + height = 72; + blocking = 2; + } + 6 + { + title = "Tiny Rock (mossy)"; + sprite = "RCK1A0"; + } + 7 + { + title = "Small Rock (mossy)"; + sprite = "RCK2A0"; + } + 9 + { + title = "Medium Rock (mossy)"; + sprite = "RCK3A0"; + } + 15 + { + title = "Big Rock (mossy)"; + sprite = "RCK4A0"; + } + 101 + { + title = "Brick Rubble (small)"; + sprite = "RBL2A0"; + } + 102 + { + title = "Brick Rubble (medium)"; + sprite = "RBL3A0"; + } + 100 + { + title = "Brick Rubble (large)"; + sprite = "RBL1A0"; + } + 39 + { + title = "Large Mushroom 1"; + sprite = "MSH1A0"; + } + 40 + { + title = "Large Mushroom 2"; + sprite = "MSH2A0"; + } + 8104 + { + title = "Large Mushroom (explodes)"; + sprite = "SHRMB0"; + width = 6; + } + 41 + { + title = "Medium Mushroom"; + sprite = "MSH3A0"; + } + 42 + { + title = "Small Mushroom 1"; + sprite = "MSH4A0"; + } + 44 + { + title = "Small Mushroom 2"; + sprite = "MSH5A0"; + } + 45 + { + title = "Small Mushroom 3"; + sprite = "MSH6A0"; + } + 46 + { + title = "Small Mushroom 4"; + sprite = "MSH7A0"; + } + 47 + { + title = "Small Mushroom 5"; + sprite = "MSH8A0"; + } + 8101 + { + title = "Shrub"; + sprite = "SHB1A0"; + width = 8; + blocking = 2; + } + 8102 + { + title = "Shrub 2"; + sprite = "SHB2A0"; + width = 16; + blocking = 2; + } + 111 + { + title = "Pool Of Blood"; + sprite = "GIBSA0"; + } + 71 + { + title= "Hanging Corpse"; + sprite = "CPS3A0"; + width = 6; + hangs = 1; + height = 75; + blocking = 2; + } + 61 + { + title = "Impaled Corpse"; + sprite = "CPS1A0"; + width = 10; + height = 92; + blocking = 2; + } + 108 + { + title = "Lynched Corpse"; + sprite = "CPS4A0"; + width = 11; + hangs = 1; + height = 95; + blocking = 2; + } + 109 + { + title = "Lynched Corpse (heartless)"; + sprite = "CPS5A0"; + width = 10; + hangs = 1; + height = 95; + blocking = 2; + } + 110 + { + title = "Corpse (sitting)"; + sprite = "CPS6A0"; + width = 15; + height = 35; + blocking = 2; + } + 62 + { + title = "Corpse (sleeping)"; + sprite = "CPS2A0"; + } + 8509 + { + title = "Meat Cleaver"; + sprite = "TST0A0"; + } + 8508 + { + title = "Goblet (silver)"; + sprite = "TST9A0"; + } + 8507 + { + title = "Goblet (small)"; + sprite = "TST8A0"; + } + 8506 + { + title = "Goblet (tall)"; + sprite = "TST7A0"; + } + 8505 + { + title = "Goblet (spilled)"; + sprite = "TST6A0"; + } + 8501 + { + title = "Small Silver Stein"; + sprite = "TST2A0"; + } + 8500 + { + title = "Large Brown Stein"; + sprite = "TST1A0"; + } + 104 + { + title = "Pot (tall)"; + sprite = "POT1A0"; + width = 10; + blocking = 2; + arg0 + { + title = "Contained Item"; + type = 11; + enum = "spawnthing"; + } + } + 105 + { + title = "Pot (medium)"; + sprite = "POT2A0"; + width = 10; + blocking = 2; + arg0 + { + title = "Contained Item"; + type = 11; + enum = "spawnthing"; + } + } + 106 + { + title = "Pot (short)"; + sprite = "POT3A0"; + width = 15; + blocking = 2; + arg0 + { + title = "Contained Item"; + type = 11; + enum = "spawnthing"; + } + } + 58 + { + title = "Hanging Moss 1"; + sprite = "MSS1A0"; + hangs = 1; + } + 59 + { + title = "Hanging Moss 2"; + sprite = "MSS2A0"; + hangs = 1; + } + 10090 + { + title = "Spike Down"; + sprite = "TSPKD0"; + width = 20; + } + 10091 + { + title = "Spike Up"; + sprite = "TSPKB0"; + width = 20; + } +} + +sounds +{ + color = 5; // Purple + arrow = 1; + title = "Sounds"; + width = 8; + height = 16; + sort = 1; + fixedsize = true; + blocking = 0; + sprite = "internal:sound"; + + 1403 = "Creak"; + 1408 = "Earth Crack"; + 1401 = "Heavy"; + 1407 = "Ice"; + 1405 = "Lava"; + 1402 = "Metal"; + 1409 = "Metal2"; + 1404 = "Silent"; + 1400 = "Stone"; + 1406 = "Water"; + 1410 = "Wind"; +} + +other +{ + color = 8; // Dark Grey + arrow = 1; + title = "Other"; + width = 0; + height = 0; + sort = 1; + fixedsize = true; + blocking = 0; + sprite = "internal:actor"; + + 118 + { + title = "Glitter Bridge"; + width = 32; + fixedsize = false; + } + 3000 = "Polyobject Anchor"; + 3001 = "Polyobject Start Spot"; + 3002 = "Polyobject Start Spot (crush)"; + 10225 + { + title = "Spawn Bat"; + sprite = "ABATC2C8"; + arg0 + { + title = "Spawn Frequency"; + } + arg1 + { + title = "Spread Angle"; + } + arg3 + { + title = "Spawn Duration"; + } + arg4 + { + title = "Changing Angle"; + } + } + 10000 + { + title = "Spawn Fog"; + arg0 + { + title = "Movement Speed"; + } + arg1 + { + title = "Spread Angle"; + } + arg2 + { + title = "Spawn Frequency"; + } + arg3 + { + title = "Fog Lifetime"; + } + } + 10001 + { + title = "Fog Patch (small)"; + arg0 + { + title = "Movement Speed"; + } + arg3 + { + title = "Fog Lifetime"; + } + arg4 + { + title = "Moving Fog"; + } + } + 10002 + { + title = "Fog Patch (medium)"; + arg0 + { + title = "Movement Speed"; + } + arg3 + { + title = "Fog Lifetime"; + } + arg4 + { + title = "Moving Fog"; + } + } + 10003 + { + title = "Fog Patch (large)"; + arg0 + { + title = "Movement Speed"; + } + arg3 + { + title = "Fog Lifetime"; + } + arg4 + { + title = "Moving Fog"; + } + } + 113 = "Spawn Leaf"; + 9001 = "Map Spot"; + 9013 = "Map Spot (gravity)"; +} diff --git a/Source/Core/General/General.cs b/Source/Core/General/General.cs index 70fd0c23..0849042a 100644 --- a/Source/Core/General/General.cs +++ b/Source/Core/General/General.cs @@ -308,7 +308,6 @@ namespace CodeImp.DoomBuilder // Go for all cfg files in the configurations directory string[] filenames = Directory.GetFiles(configspath, "*.cfg", SearchOption.TopDirectoryOnly); - Array.Sort(filenames); foreach(string filepath in filenames) { @@ -324,6 +323,9 @@ namespace CodeImp.DoomBuilder configs.Add(cfginfo); } } + + // Sort the configs + configs.Sort(); } // This loads all nodebuilder configurations @@ -692,6 +694,21 @@ namespace CodeImp.DoomBuilder } random = new Random(); //mxd + + //mxd. Check enabled game configuration + bool noneenabled = true; + for(int i = 0; i < configs.Count; i++) { + if(configs[i].Enabled) { + noneenabled = false; + break; + } + } + + if(noneenabled) { + if(MessageBox.Show("No game configurations are currently enabled.\nPlease enable at least one game configuration", "Warning", MessageBoxButtons.OK) == DialogResult.OK) { + mainwindow.ShowConfiguration(); + } + } // Run application from the main window Application.Run(mainwindow); diff --git a/Source/Core/Windows/ConfigForm.Designer.cs b/Source/Core/Windows/ConfigForm.Designer.cs index 4121e031..52a47506 100644 --- a/Source/Core/Windows/ConfigForm.Designer.cs +++ b/Source/Core/Windows/ConfigForm.Designer.cs @@ -718,7 +718,6 @@ namespace CodeImp.DoomBuilder.Windows this.listconfigs.Name = "listconfigs"; this.listconfigs.ShowGroups = false; this.listconfigs.Size = new System.Drawing.Size(259, 358); - this.listconfigs.Sorting = System.Windows.Forms.SortOrder.Ascending; this.listconfigs.TabIndex = 0; this.listconfigs.UseCompatibleStateImageBehavior = false; this.listconfigs.View = System.Windows.Forms.View.Details; diff --git a/Source/Core/Windows/ConfigForm.cs b/Source/Core/Windows/ConfigForm.cs index df5dfab2..9643f41d 100644 --- a/Source/Core/Windows/ConfigForm.cs +++ b/Source/Core/Windows/ConfigForm.cs @@ -317,21 +317,16 @@ namespace CodeImp.DoomBuilder.Windows private void apply_Click(object sender, EventArgs e) { ConfigurationInfo ci; - - // Apply configuration items - foreach(ListViewItem lvi in listconfigs.Items) - { - // Get configuration item - ci = lvi.Tag as ConfigurationInfo; - ci.Enabled = lvi.Checked; - if(!ci.Changed) continue; //mxd. This config wasn't changed - // Find same configuration info in originals - foreach(ConfigurationInfo oci in General.Configs) - { - // Apply settings when they match - if(string.Compare(ci.Filename, oci.Filename) == 0) oci.Apply(ci); - } + //mxd. Apply configuration items. They should be in the same order, riiiight? + for(int i = 0; i < listconfigs.Items.Count; i++) { + // Get configuration item + ci = listconfigs.Items[i].Tag as ConfigurationInfo; + ci.Enabled = listconfigs.Items[i].Checked; + + // Apply settings + General.Configs[i].Enabled = ci.Enabled; + if(ci.Changed) General.Configs[i].Apply(ci); } //mxd. Update linedef color presets diff --git a/Source/Core/Windows/ConfigForm.resx b/Source/Core/Windows/ConfigForm.resx index 6ba5a1e7..3efe96de 100644 --- a/Source/Core/Windows/ConfigForm.resx +++ b/Source/Core/Windows/ConfigForm.resx @@ -204,48 +204,6 @@ True - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - 159, 17 @@ -254,7 +212,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA4 - CAAAAk1TRnQBSQFMAwEBAAHsAQAB7AEAARMBAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA + CAAAAk1TRnQBSQFMAwEBAAH0AQAB9AEAARMBAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA AUwDAAEQAwABAQEAAQgFAAHAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -310,6 +268,9 @@ True + + True + True diff --git a/Source/Core/Windows/MainForm.cs b/Source/Core/Windows/MainForm.cs index 70249502..cd3b9255 100644 --- a/Source/Core/Windows/MainForm.cs +++ b/Source/Core/Windows/MainForm.cs @@ -228,11 +228,11 @@ namespace CodeImp.DoomBuilder.Windows buttongrid.DropDownDirection = ToolStripDropDownDirection.AboveLeft; // Event handlers - buttonvisiblechangedhandler = new EventHandler(ToolbarButtonVisibleChanged); + buttonvisiblechangedhandler = ToolbarButtonVisibleChanged; //mxd - display.OnKeyReleased += new KeyEventHandler(display_OnKeyReleased); - toolbarContextMenu.KeyDown += new KeyEventHandler(toolbarContextMenu_KeyDown); - toolbarContextMenu.KeyUp += new KeyEventHandler(toolbarContextMenu_KeyUp); + display.OnKeyReleased += display_OnKeyReleased; + toolbarContextMenu.KeyDown += toolbarContextMenu_KeyDown; + toolbarContextMenu.KeyUp += toolbarContextMenu_KeyUp; // Bind any methods General.Actions.BindMethods(this); @@ -251,8 +251,7 @@ namespace CodeImp.DoomBuilder.Windows lastsize = this.Size; //mxd - blinkTimer = new System.Timers.Timer(); - blinkTimer.Interval = 500; + blinkTimer = new System.Timers.Timer {Interval = 500}; blinkTimer.Elapsed += blinkTimer_Elapsed; //mxd. Hints @@ -519,21 +518,6 @@ namespace CodeImp.DoomBuilder.Windows this.DragEnter += OnDragEnter; this.DragDrop += OnDragDrop; - //mxd. Check enabled game configuration - bool noneenabled = true; - for (int i = 0; i < General.Configs.Count; i++) { - if (General.Configs[i].Enabled) { - noneenabled = false; - break; - } - } - - if(noneenabled) { - if (MessageBox.Show("No game configurations are currently enabled.\nPlease enable at least one game configuration", "Warning", MessageBoxButtons.OK) == DialogResult.OK) { - ShowConfiguration(); - } - } - // Info panel state? bool expandedpanel = General.Settings.ReadSetting("mainwindow.expandedinfopanel", true); if(expandedpanel != IsInfoPanelExpanded) ToggleInfoPanel();