Jump to content

How do I make a boom map GZDoom incompatible?


Recommended Posts

1 hour ago, Ravendesk said:

True in case of settings, but let me show you a zscript from Thirty Monsters Challenge wad just to demonstrate my point:

  Hide contents


// Patch script (v2) for 30mc MAP60

class CustomLevelProcessor : LevelPostProcessor
{
    protected void Apply(Name checksum, String mapname)
    {
		// Check mapchecksum for '30mc beta 04.wad' MAP60 by antares031
        if(checksum == '426EAB47480B6F402E59515DD7395B2D')
        {
			CVar enable_patch = CVar.FindCVar('patch_30mc_map60');
			if (!enable_patch) return;
			if (enable_patch.GetBool() == false) return;
			
			// Uncomment only for testing
			//SetThingXY(98, 4192.0, -8768.0); //Test 1st track
			//SetThingXY(98, 6912.0, -8832.0); //Test 2nd track
			//SetThingXY(98, 9088.0, -8672.0); //Test 3rd track
			
			
			// Starting arena
			
			// Add custom sector actions that slow down projectiles.
			AddThing(12310, (-6240.0, -1440.0, 0.0), 0, SKILLS_ALL, MODES_ALL); //Sector 35
			AddThing(12310, (-6240.0,   512.0, 0.0), 0, SKILLS_ALL, MODES_ALL); //Sector 37
			
			AddThing(12310, (-4960.0, -1440.0, 0.0), 0, SKILLS_ALL, MODES_ALL); //Sector 30
			AddThing(12310, (-4960.0,   512.0, 0.0), 0, SKILLS_ALL, MODES_ALL); //Sector 33
			
			//Adjust scrolling direction of tag 203
			SetVertex(768, -4928.0, -3648.0);
			
			//Adjust scrolling direction of tag 103
			SetVertex(781, -4928.0, -4864.0);
			
			//Disable these line specials, so rockets don't get stuck in a loop.
			SetLineSpecial(1035, 0);
			SetLineSpecial(1038, 0);
			
			
			// 1st Track
			
			// Move vertex to decrease linedef 13694 to a length of 1152.
			SetVertex(12073, 3584.0, -10368.0); 
			// Scroll instead of Wind, as fast wind doesn't quite work the same in GZDoom.
			SetLineSpecial(13694, Scroll_Floor, 31, 4, 1);
			// Reduce wind speed on the ramp.
			SetLineSpecial(14789, Sector_SetWind, 33, 512, 64);
			
			// Make the ramp lower by removing steps from the end.
			//OffsetSectorPlane(302, Sector.floor, -112);
			//OffsetSectorPlane(303, Sector.floor, -136);
			OffsetSectorPlane(304, Sector.floor, -160);
			OffsetSectorPlane(305, Sector.floor, -184);
			OffsetSectorPlane(301, Sector.floor, -200);
			
			
			// 2nd Track
			// Move vertex to decrease linedef 15000 to a length of 1088.
			SetVertex(13282, 5824.0, -10304.0); 
			SetLineSpecial(15000, Scroll_Floor, 34, 4, 1); 
			
			
			// 3rd Track
			// Move vertex to increase linedef 17296 to a length of 1344.
			SetVertex(15318, 8448.0, -10560.0);
			SetLineSpecial(17296, Scroll_Floor, 48, 4, 1);
			
			
			// Replace decorations with +NOGRAVITY variants, so that they
			// don't get moved by the floors that were changed to scrollers.
			for(int i = 0; i < GetThingCount(); i++)
			{
				int ednum = GetThingEdNum(i);
				switch(ednum)
				{
					case 34: SetThingEdNum(i, 12301); break; //Candlestick
					case 44: SetThingEdNum(i, 12302); break; //BlueTorch
					case 55: SetThingEdNum(i, 12303); break; //ShortBlueTorch
					case 57: SetThingEdNum(i, 12304); break; //ShortRedTorch
					case 2028: SetThingEdNum(i, 12305); break; //Column
				}
			}
			
			Console.Printf("Patch loaded for 30mc MAP60.");
        }
    }
}

class SecActHalfVelocity : SectorAction
{
	override bool TriggerAction (Actor triggerer, int activationType)
	{
		if (activationType & SECSPAC_Enter)
		{
			triggerer.A_ScaleVelocity(0.5);
		}
		return false;
	}
}

 

 

That's what was needed to do just to make a certain mbf21 map to work properly in GZ :)

 

Ok, where are the bug reports that could have ensured that the maps works without such hackery?

If you people ciontinue to heap workaround after workaround onto a map without getting the engine fixed, it is no surprise that such monstrosities are conceived.

 

 

Share this post


Link to post

I've been using ZDoom and then GZDoom as my primary DOOM engine since their inception, relegating DOOM/BOOM maps to subcategories. I just prefer the hardware renderer and well crafted maps. That is not to say that all GZDoom specific maps are worth playing.

 

So, other than the scientific aspect, I wonder why someone would want to make a map GZDoom incompatible.

Even if it were possible, the scheme would be easily defeated with some deletions using Slade3.

Edited by Kappes Buur

Share this post


Link to post
16 hours ago, ViolentBeetle said:

On the subject of map-breaking compatibility issues you didn't see it coming, here's one. Put a decoration on a scroller with low ceiling (16 units tall sector) and make it open critical door.

In Boom all decorations are 16 units tall, but in GZDoom they are as tall as their sprites suggests. It's hardly ever relevant, except here.

Probably fixed by fiddling with compatibility, but good luck figuring it out.

Would be very easy to fix with a simple Decorate patch.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...