- REQUIEM.WAD fixes (#1050)

Fixes for various maps in the Requiem megawad.

Idgames: https://www.doomworld.com/idgames/levels/doom2/megawads/requiem
This commit is contained in:
Erick Tenorio 2020-04-02 04:35:51 -05:00 committed by GitHub
parent 8336e80f48
commit b2a17dfdc2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 172 additions and 5 deletions

View file

@ -162,11 +162,6 @@ AF40D0E49BD1B76D4B1AADD8212ADC46 // MAP01 (the wad that shall not be named =P)
limitpain
}
7C1913DEE396BA26CFF22A0E9369B7D2 // Nuke Mine, e1m2
{
pointonline
}
920F8D876ECD96D8C2A978FF1AB2B401 // Darken2.wad map01 - Nodes go out of bounds/beyond normal sector boundaries
CFEDB7FA89885E24856CAC9A2FB3CE58 // Darken2.wad map03 - GZDoomBuilder crashes when displaying Nodes
8E961FA7029761D5FAB3932C40F10CD2 // Darken2.wad map04 - Nodes go out of bounds/beyond normal sector boundaries
@ -198,6 +193,7 @@ EDA5CE7C462BD171BF8110AC56B67857 // pl2.wad map11
A9A9A728E689266939C1B71655F320CA // pl2.wad map25
62CA74092FC88C1E7FE2D0B1A8034E29 // pl2.wad map29
19E1CFD717FC6BBA9371F0F529B4CDFF // ur_final.wad map27
836E09559FF22A7A37C2587F7EAFF1EE // Requiem MAP29 - Incorrect sector lighting and vanishing items
{
rebuildnodes
}
@ -255,6 +251,7 @@ D7F6E9F08C39A17026349A04F8C0B0BE // Return to Hadron, e1m9
19D03FFC875589E21EDBB7AB74EF4AEF // Return to Hadron, e1m9, 2016.01.03 update
5BDA34DA60C0530794CC1EA2DA017976 // doom2.wad map14
5B3F118B337BFBFB8D5C81E98AF7B71D // Ancient Aliens map23
7C1913DEE396BA26CFF22A0E9369B7D2 // Nuke Mine, e1m2
{
pointonline
}

View file

@ -1778,6 +1778,176 @@ class LevelCompatibility : LevelPostProcessor
SetLineSpecial(11518, 9, 0, 0, 0, 0);
break;
}
case 'BA530202AF0BA0C6CBAE6A0C7076FB72': // Requiem MAP04
{
// Flag deathmatch berserk for 100% items in single-player
SetThingFlags(284, 17);
// Make Hell Knight trap switch repeatable to prevent softlock
SetLineFlags(823, Line.ML_REPEAT_SPECIAL);
break;
}
case '104415DDEBCAFB9783CA60807C46B57D': // Requiem MAP05
{
// Raise spectre pit near soulsphere if player drops into it
for(int i = 0; i < 4; i++)
{
SetLineSpecial(2130+i, Floor_LowerToHighest, 28, 8, 128);
SetLineActivation(2130+i, SPAC_Cross);
}
break;
}
case '1B0AF5286D4E914C5E903BC505E6A844': // Requiem MAP06
{
// Flag deathmatch berserks for 100% items in single-player
SetThingFlags(103, 17);
SetThingFlags(109, 17);
// Shooting the cross before all Imps spawn in can make 100%
// kills impossible, add line actions and change sector tag
for(int i = 0; i < 7; i++)
{
SetLineSpecial(1788+i, Floor_RaiseToNearest, 100, 32);
SetLineActivation(1788+i, SPAC_Cross);
}
SetLineSpecial(1796, Floor_RaiseToNearest, 100, 32);
SetLineActivation(1796, SPAC_Cross);
SetLineSpecial(1800, Floor_RaiseToNearest, 100, 32);
SetLineActivation(1800, SPAC_Cross);
SetLineSpecial(1802, Floor_RaiseToNearest, 100, 32);
SetLineActivation(1802, SPAC_Cross);
ClearSectorTags(412);
AddSectorTag(412, 100);
// Shootable cross at demon-faced floor changed to repeatable
// action to prevent softlock if "spikes" are raised again
SetLineFlags(2600, Line.ML_REPEAT_SPECIAL);
break;
}
case '3C10B1B017E902BE7CDBF2436DF56973': // Requiem MAP08
{
// Flag deathmatch soulsphere for 100% items in single-player
SetThingFlags(48, 17);
// Allow player to leave inescapable lift using the walls
for(int i = 0; i < 3; i++)
{
SetLineSpecial(2485+i, Plat_DownWaitUpStayLip, 68, 64, 105, 0);
SetLineActivation(2485+i, SPAC_Use);
SetLineFlags(2485+i, Line.ML_REPEAT_SPECIAL);
}
SetLineSpecial(848, Plat_DownWaitUpStayLip, 68, 64, 105, 0);
SetLineActivation(848, SPAC_UseBack);
SetLineFlags(848, Line.ML_REPEAT_SPECIAL);
SetLineSpecial(895, Plat_DownWaitUpStayLip, 68, 64, 105, 0);
SetLineActivation(895, SPAC_UseBack);
SetLineFlags(895, Line.ML_REPEAT_SPECIAL);
break;
}
case '14FE46ED0458979118007E1906A0C9BC': // Requiem MAP09
{
// Flag deathmatch items for 100% items in single-player
for(int i = 0; i < 6; i++)
SetThingFlags(371+i, 17);
for(int i = 0; i < 19; i++)
SetThingFlags(402+i, 17);
SetThingFlags(359, 17);
SetThingFlags(389, 17);
SetThingFlags(390, 17);
// Change sides of blue skull platform to be repeatable
for(int i = 0; i < 4; i++)
SetLineFlags(873+i, Line.ML_REPEAT_SPECIAL);
// Make switch that raises bars near yellow skull repeatable
SetLineFlags(2719, Line.ML_REPEAT_SPECIAL);
break;
}
case '53A6369C3C8DA4E7AC443A8F8684E38E': // Requiem MAP12
{
// Remove unreachable secrets
SetSectorSpecial(352, 0);
SetSectorSpecial(503, 0);
// Change action of eastern switch at pool of water so that it
// lowers the floor properly, making the secret accessible
SetLineSpecial(4873, Floor_LowerToLowest, 62, 8);
break;
}
case '2DAB6E4B19B4F2763695267D39CD0275': // Requiem MAP13
{
// Fix missing nukage at starting bridge on hardware renderer
for(int i = 0; i < 4; i++)
SetLineSectorRef(2152+i, Line.back, 8);
break;
}
case 'F55FB2A8DC68CFC75E4340EF4ED7A8BF': // Requiem MAP21
{
// Fix self-referencing floor hack
for(int i = 0; i < 4; i++)
SetLineSectorRef(3+i, Line.back, 219);
SetLineSpecial(8, Transfer_Heights, 80);
// Fix south side of pit hack so textures don't bleed through
// the fake floor on hardware renderer
SetLineSectorRef(267, Line.back, 63);
SetLineSectorRef(268, Line.back, 63);
SetLineSectorRef(270, Line.back, 63);
SetLineSectorRef(271, Line.back, 63);
SetLineSectorRef(274, Line.back, 63);
SetLineSectorRef(275, Line.back, 63);
SetLineSectorRef(3989, Line.back, 63);
SetLineSectorRef(3994, Line.back, 63);
// Fix fake 3D bridge on hardware renderer
SetLineSectorRef(506, Line.back, 841);
SetLineSectorRef(507, Line.back, 841);
SetLineSectorRef(536, Line.back, 841);
SetLineSectorRef(537, Line.back, 841);
SetLineSectorRef(541, Line.back, 841);
SetLineSectorRef(547, Line.back, 841);
AddSectorTag(90, 1000);
AddSectorTag(91, 1000);
SetSectorTexture(90, Sector.floor, "MFLR8_4");
SetSectorTexture(91, Sector.floor, "MFLR8_4");
SetLineSectorRef(553, Line.back, 841);
SetLineSectorRef(554, Line.back, 841);
SetLineSectorRef(559, Line.back, 841);
SetLineSectorRef(560, Line.back, 841);
SetLineSectorRef(562, Line.back, 841);
SetLineSectorRef(568, Line.back, 841);
AddSectorTag(96, 1000);
AddSectorTag(97, 1000);
SetSectorTexture(96, Sector.floor, "MFLR8_4");
SetSectorTexture(97, Sector.floor, "MFLR8_4");
SetLineSpecial(505, Transfer_Heights, 1000);
// Fix randomly appearing ceiling at deep water
SetLineSectorRef(1219, Line.front, 233);
SetLineSectorRef(1222, Line.front, 233);
SetLineSectorRef(1223, Line.front, 233);
SetLineSectorRef(1228, Line.front, 233);
// Make switch in sky room repeatable so player does not get
// trapped at red cross if returning a second time
SetLineFlags(3870, Line.ML_REPEAT_SPECIAL);
// Move unreachable item bonuses
SetThingXY(412, -112, 6768);
SetThingXY(413, -112, 6928);
SetThingXY(414, -96, 6928);
SetThingXY(415, -96, 6768);
// Remove unreachable secret at exit megasphere
SetSectorSpecial(123, 0);
break;
}
case '2499CF9A9351BE9BC4E9C66FC9F291A7': // Requiem MAP23
{
// Remove secret at switch that can only be scored by crouching
SetSectorSpecial(240, 0);
break;
}
}
}
}