Doom II iwad not respecting MAPINFO replacement?

Ask about ACS, DECORATE, ZScript, or any other scripting questions here!

Moderator: GZDoom Developers

Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. If you still don't understand how to use a feature, then ask here.

Please bear in mind that the people helping you do not automatically know how much you know. You may be asked to upload your project file to look at. Don't be afraid to ask questions about what things mean, but also please be patient with the people trying to help you. (And helpers, please be patient with the person you're trying to help!)
User avatar
eharper256
Posts: 872
Joined: Sun Feb 25, 2018 2:30 am
Location: UK

Doom II iwad not respecting MAPINFO replacement?

Post by eharper256 »

So I popped out a patch recently for my mod Walpurgis, and the Elementalism map-set by Bauul et. al.

Turns out that, despite my initial tests confirming otherwise, when using the original Doom II iwad, this patch now does not automatically load the starting hub map of Elementalism, and it must be triggered with console command map hub. However, it works perfectly fine when using a Wadsmoosh. Both have identical loadorders in my gzdoom_portable.txt.

After bashing my head against a wall a few times and trying all sorts of things; I honestly can't understand why this appears to be the case, so any help with understanding this will be appreciated.

Here's Elementalism's ZMAPINFO. It loads first in sequence:

Code: Select all

defaultmap 
{
	compat_explode1 = 1
	compat_crossdropoff = 1
	compat_invisibility = 1
	EnableShadowmap
	
	compat_corpsegibs = 0
	compat_limitpain = 0
	compat_mbfmonstermove = 0
	compat_dropoff = 0
	compat_useblocking = 0
	compat_shorttex = 0
	compat_floormove = 0
	compat_pointonline = 0
	compat_multiexit = 0
	compat_nopassover = 0
	compat_boomscroll = 0
	compat_badangles = 0
	//compat_wallrun = 0
	compat_ravenscroll = 0
	compat_trace = 0
	//compat_hitscan = 0
	compat_missileclip = 0
	compat_polyobj = 0
	compat_maskedmidtex = 0
	compat_spritesort = 0
	//compat_soundslots = 0
	//compat_silentpickup = 0
	//compat_silentinstantfloors = 0
	compat_sectorsounds = 0
	compat_soundcutoff = 0
	compat_soundtarget = 0
	
}

GameInfo 
{
	AddEventHandlers = "WaterHandler"	
	PlayerClasses = "PortalPlayer"
	StatusBarClass = "ElemStatusBar"
}

DamageType EWandDamage
{
	Obituary = "%o got crushed by the Earth Wand"
}

DamageType EBossDamage
{
    Obituary = "%o submitted to the Parasite of the Gods"
}

DamageType FireMonsterDamage
{
	
}

clearskills

skill baby
{
	AutoUseHealth
	AmmoFactor = 2
	DamageFactor = 0.5
	EasyBossBrain
	SpawnFilter = Baby
	PicName = "M_SKILL1"
	Name = "$SKILL_BABY"
	Key = "i"
	ReplaceActor = "FatShotFireBoss", "FatShotFireBossEasy"
	ReplaceActor = "ImpShotFireBoss", "ImpShotFireBossEasy"
	ReplaceActor = "Hecteball", "HecteballEasy"
	ReplaceActor = "ArachnotronBossPlasma", "ArachnotronBossPlasmaEasy"
	ReplaceActor = "AracnorbBallBoss1", "AracnorbBallBoss1Easy"
	ReplaceActor = "AracnorbBallBoss2", "AracnorbBallBoss2Easy"
	ReplaceActor = "BlobBall", "BlobBallEasy"
	ReplaceActor = "WallBlastLowHorizontal", "WallBlastLowHorizontalEasy"
	ReplaceActor = "WallBlastHighHorizontal", "WallBlastHighHorizontalEasy"
	ReplaceActor = "DeepOneBallBoss", "DeepOneBallBossEasy"
	ReplaceActor = "AracnorbBallWaterBoss2", "AracnorbBallWaterBoss2Easy"
	ReplaceActor = "VulgarShotBoss", "VulgarShotBossEasy"
	ReplaceActor = "IceMistBoss", "IceMistBossEasy"
	ACSReturn = 0
}

skill easy
{
	EasyBossBrain
	SpawnFilter = Easy
	PicName = "M_SKILL2"
	Name = "$SKILL_EASY"
	Key = "h"
	ReplaceActor = "FatShotFireBoss", "FatShotFireBossEasy"
	ReplaceActor = "ImpShotFireBoss", "ImpShotFireBossEasy"
	ReplaceActor = "Hecteball", "HecteballEasy"
	ReplaceActor = "ArachnotronBossPlasma", "ArachnotronBossPlasmaEasy"
	ReplaceActor = "AracnorbBallBoss1", "AracnorbBallBoss1Easy"
	ReplaceActor = "AracnorbBallBoss2", "AracnorbBallBoss2Easy"
	ReplaceActor = "BlobBall", "BlobBallEasy"
	ReplaceActor = "WallBlastLowHorizontal", "WallBlastLowHorizontalEasy"
	ReplaceActor = "WallBlastHighHorizontal", "WallBlastHighHorizontalEasy"
	ReplaceActor = "DeepOneBallBoss", "DeepOneBallBossEasy"
	ReplaceActor = "AracnorbBallWaterBoss2", "AracnorbBallWaterBoss2Easy"
	ReplaceActor = "VulgarShotBoss", "VulgarShotBossEasy"
	ReplaceActor = "IceMistBoss", "IceMistBossEasy"
	ACSReturn = 1
}

skill normal
{
	SpawnFilter = Normal
	PicName = "M_SKILL3"
	Key = "h"
	Name = "$SKILL_NORMAL"
	DefaultSkill
	ReplaceActor = "FatShotFireBoss", "FatShotFireBossMedium"
	ReplaceActor = "ImpShotFireBoss", "ImpShotFireBossMedium"
	ReplaceActor = "Hecteball", "HecteballMedium"
	ReplaceActor = "ArachnotronBossPlasma", "ArachnotronBossPlasmaMedium"
	ReplaceActor = "AracnorbBallBoss1", "AracnorbBallBoss1Medium"
	ReplaceActor = "AracnorbBallBoss2", "AracnorbBallBoss2Medium"
	ReplaceActor = "BlobBall", "BlobBallMedium"
	ReplaceActor = "WallBlastLowHorizontal", "WallBlastLowHorizontalMedium"
	ReplaceActor = "WallBlastHighHorizontal", "WallBlastHighHorizontalMedium"
	ReplaceActor = "DeepOneBallBoss", "DeepOneBallBossMedium"
	ReplaceActor = "AracnorbBallWaterBoss2", "AracnorbBallWaterBoss2Medium"
	ReplaceActor = "VulgarShotBoss", "VulgarShotBossMedium"
	ReplaceActor = "IceMistBoss", "IceMistBossMedium"
	ACSReturn = 2
}

skill hard
{
	SpawnFilter = Hard
	PicName = "M_SKILL4"
	Name = "$SKILL_HARD"
	Key = "u"
	ACSReturn = 3
}

skill nightmare
{
	AmmoFactor = 2
	FastMonsters
	DisableCheats
	RespawnTime = 12
	SpawnFilter = Nightmare
	PicName = "M_SKILL5"
	Name = "$SKILL_NIGHTMARE"
	MustConfirm
	Key = "n"
	ACSReturn = 4
}

skill harddowndown
{
	SpawnFilter = Hard
	MustConfirm = "Lower monster damage & health for a much easier Ultra-Violence experience.  Continue?"
	ACSReturn = 5
	MonsterHealth = 0.5
	PicName = "M_SKILL6"
}

skill harddown
{
	SpawnFilter = Hard
	MustConfirm = "Lower monster damage for an easier Ultra-Violence experience.  Continue?"
	ACSReturn = 6
	PicName = "M_SKILL7"
}





// ----------------------------- //
// Episode definition
// ----------------------------- //

clearepisodes

episode HUB
{
}

// ----------------------------- //
// Hub Map and Title Map
// ----------------------------- //
map hub "Temple of the Elements" {
	levelnum = 1
	music = ""
	lightmode = 0
	nointermission
	sky1 = "ALLBLACK"
	SmoothLighting
	PrecacheSounds = "sounds/HubPortal", "sounds/HubThump", "sounds/HubElectric5", "sounds/HubElectric2", "sounds/HubElectric1", "sounds/HubElectric4", "sounds/stonedoorclose", "sounds/metalsqueak4", "sounds/HubElectrics"
	PrecacheClasses = "HubLight"
	Next = "EndTitle"
	compat_crossdropoff = 0
}

map titlemap "Welcome to Elementalism" {
	music = "D_TITLE"
	levelnum = 99
	sky1 = "ALLBLACK"
}


// ----------------------------- //
// Earth Maps
// ----------------------------- //

// Dreadopp
map e1 "Heart of the Feathered Serpent" {
	levelnum = 2
	music = "D_E1"
	lightmode = 0
	nointermission
	sky1 = "EARTH1"
	Next="e2"
	par=210
}

// Dragonfly
map e2 "Descension" {
	levelnum = 3
	music = "D_E2"
	lightmode = 1
	nointermission
	sky1 = "EARTH4"
	Next="e3"
	EvenLighting
	par=300
}

// Bauul
map e3 "Betwixt The Thicket" {
	levelnum = 4
	music = "D_E3"
	lightmode = 0
	nointermission
	sky1 = "EARTH2"
	Next="e4"
	par=450
}

// Remmirath
map e4 "Fallen City of Hedania" {
	levelnum = 5
	music = "D_E4"
	nointermission
	sky1 = "EARTH3"
	skyfog = 16
	Next="e5"
	par=1320
	lightmode = 2
}

// Bauul - Boss Map
map e5 "Deus Vermem" {
	levelnum = 6
	music = "D_E5"
	lightmode = 2
	nointermission
	sky1 = "EARTH1"
	AirControl = 0.35
	Next="Hub"
	par=540
}

// ----------------------------- //
// Water Maps
// ----------------------------- //

// Dreadopp
map w1 "A Watery Grave" {
	levelnum = 17
	music = "D_W1"
	lightmode = 2
	nointermission
	sky1 = "DYMIST"
	Next="w2"
	Par=240
	PrecacheClasses = "W1_Export", "W2_Export_Upper", "W2_Export_Lower", "W3_Block", "W4_Export", "WaterSkyBox_1", "W4_Export_Mini", "Waterwheel", "horus_pylon", "claybrazier", "3x_chain_straight_fixedorigins_nospikes", "EleSmallFlameBlue", "EleShortBlueTorch", "EleBlueTorch", "rocks1", "rocks2", "rocks3", "rocks4", "palm1", "palm2", "palm3", "palm4", "palm5", "palm6", "W4Dunes_v2", "Ramses_Sitting"
}

// Phade
map w2 "The Sunken Temple" {
	levelnum = 18
	music = "D_W2"
	lightmode = 0
	nointermission
	sky1 = "WATER2"
	Par=540
	Next="w3"
}

// Bauul and Remmirath
map w3 "Roots of the Weeping Mountain" {
	levelnum = 19
	music = "D_W3"
	lightmode = 0
	nointermission
	sky1 = "WATER3"
	Next="w4"
	Par=1110
	PrecacheSounds = "STAIRRTE"
}

// Bauul
map w4 "The Palace of Tears" {
	levelnum = 20
	music = "D_W4"
	lightmode = 2
	nointermission
	sky1 = "WATER4"
	Next="w5"
	Par=1080
	PrecacheClasses = "W1_Export", "W2_Export_Upper", "W2_Export_Lower", "W3_Block", "W4_Export", "WaterSkyBox_1", "W4_Export_Mini", "Waterwheel", "horus_pylon", "claybrazier", "3x_chain_straight_fixedorigins_nospikes", "EleSmallFlameBlue", "EleShortBlueTorch", "EleBlueTorch", "rocks1", "rocks2", "rocks3", "rocks4", "palm1", "palm2", "palm3", "palm4", "palm5", "palm6", "W4Dunes_v2", "Ramses_Sitting"
	// EvenLighting
	// nolightfade
	UsePlayerStartZ
	compat_crossdropoff = 0
}



// Bauul
map w5 "The Fountainhead" {
	levelnum = 21
	music = "D_W5"
	lightmode = 2
	nointermission
	sky1 = "WATER4"
	UsePlayerStartZ
	Next="Hub"
	Par=1200
	PrecacheClasses = "WaterBossShooterOrb"
	PrecacheTextures = "HBP1A0", "HBP1B0", "HBP1C0", "HBP1D0", "HBP1E0", "HBP1F0", "HBP1G0", "HBP1H0", "HBP1I0", "HBP1J0", "HBP1K0", "HBP1L0", "HBP1M0", "HBP1N0", "HBP1O0", "HBP1P0", "HBP1Q0", "HBP1R0", "HBP1S0", "HBP1T0", "HBP1U0", "HBP1V0", "HBP1W0", "HBP1X0", "HBP1Y0", "HBP1Z0", "HBP2A0", "HBP2B0", "HBP2C0", "HBP2D0", "HBP2E0", "HBP2F0"
	PrecacheSounds = "CRANK4", "sounds/trapstop", "Airwand/Fire", "sounds/WaterBang"
}


// ----------------------------- //
// Fire Maps
// ----------------------------- //

// Bridgeburner
map f1 "The Ashen Steppe" {
	levelnum = 7
	music = "D_F1"
	lightmode = 0
	nointermission
	sky1 = "FIRE1"
	Next="f2"
	Par=480
}

// Dragonfly
map f2 "Cauldron of Azar" {
	levelnum = 8
	music = "D_F2"
	lightmode = 0
	nointermission
	sky1 = "FIRE1"
	Next = "F3"
	Par=720
	PrecacheTextures = "Doorbake", "gear2_diffuse", "Gibbet", "Chain_diffuse", "Gibbet_drk", "F2_door_2", "F2_FLOOR"
}

// Bauul
map f3 "The Steamclock Labyrinth" {
	levelnum = 9
	music = "D_F3"
	par = 390
	next = "f4"
	lightmode = 0
	nointermission
	AirControl = 0.1
	sky1 = "FIRE4"
}

// Remmirath
map f4 "Forge of Nathrath" {
	levelnum = 10
	UsePlayerStartZ
	checkswitchrange
	music = "D_F4"
	lightmode = 0
	par = 840
	nointermission
	sky1 = "FIRE4"
	Next="f5"
}

// Bridgeburner
map f5 "Beneath the Hammer" {
	levelnum = 11
	music = "D_F5"
	lightmode = 0
	nointermission
	sky1 = "FIRE4"
	Next="Hub"
	par = 360
	compat_crossdropoff = 0
}
Here's my mod's MAPINFO, it loads next in sequence:

Code: Select all

GameInfo
{ 
	StatusBarClass = "SpecialHexenStatusBar"
	AddPlayerClasses = "DruidPlayer"
	AddEventHandlers = "StepEventHandler"
	AddEventHandlers = "GibbetFixingEventHandler"
	AddEventHandlers = "HPModifierHandler"
	BackpackType = "" 
	DrawReadThis = True
	titletime = 12
	PlayerClasses = "MyrmidonPlayer", "CrusaderPlayer", "MagisterPlayer", "DruidPlayer"
	InfoPage = "WalpHelp", "HALPMYRM", "HALPCRUS", "HALPMAGI", "HALPDRUI"
	menufontcolor_title = "RED"
	menufontcolor_label = "WHITE"
	menufontcolor_value = "DARKGREEN"   
	menufontcolor_action = "ICE"
	menufontcolor_header = "RED"
	menufontcolor_highlight = "DARKGREEN"
	menufontcolor_selection = "DARKGREEN"
	MenuSliderColor = "RED" 
	intermissionmusic = "MYRMIDON"
	FinaleMusic = "WALINTER"
	ExitPic = "INTERPIC" 
	GibFactor = 0.5
	titlemusic = "TITLEMUZ"
	QuitMessages ="$QUITMSG1","$QUITMSG2","$QUITMSG3","$QUITMSG4","$QUITMSG5","$QUITMSG6","$QUITMSG7","$QUITMSG8","$QUITMSG9","$QUITMSG10","$QUITMSG11","$QUITMSG12"
}

map TITLEMAP lookup "TITLEMAP"
{
	music = "TITLEMUZ"
}

Clearskills

Skill SkillOne
{
	spawnfilter = baby
	aggressiveness = 0.1
	ammofactor = 1.5
	damagefactor = 0.5
	ACSReturn = 0
	TotalInfighting
	EasyKey
	PlayerClassName = "Baratus the Myrmidon" , "Uh... I left my sword at home..."
	PlayerClassName = "Parias the Crusader" , "Seek penance, ye of little faith..."
	PlayerClassName = "Daedolon the Magister" , "Out of Magic Missiles..."
	PlayerClassName = "Illitheya the Druid", "...if a woodchuck could chuck wood?"
	name = "Ooh! Flowers! Korax can wait."
}

Skill SkillTwo
{
	spawnfilter = easy
	aggressiveness = 0.3
	ammofactor = 1.0
	damagefactor = 0.9
	ACSReturn = 1
	PlayerClassName = "Baratus the Myrmidon" , "Just Part of the Rank and File."
	PlayerClassName = "Parias the Crusader" , "The Light is with me. I think."
	PlayerClassName = "Daedolon the Magister" , "Fresh out of the Library."
	PlayerClassName = "Illitheya the Druid", "The Forest is quiet... for now..."
	name = "I'm on an Adventure!"
}

Skill SkillThree
{
	spawnfilter = normal
	aggressiveness = 0.5
	ammofactor = 1.0
	damagefactor = 1
	ACSReturn = 2
	DefaultSkill
	PlayerClassName = "Baratus the Myrmidon" , "I AXE the questions around here!"
	PlayerClassName = "Parias the Crusader" , "In this valley of death I shall fear no evil!"
	PlayerClassName = "Daedolon the Magister" , "I'm wise beyond my years, some say!"
	PlayerClassName = "Illitheya the Druid", "I fly like a Buzzard, sting like a Bee."
	name = "My those mountains look questworthy."
}

Skill SkillFour
{
	spawnfilter = hard
	aggressiveness = 0.7
	ammofactor = 1.0
	damagefactor = 1
	MonsterHealth = 1.1
	ACSReturn = 3
	PlayerClassName = "Baratus the Myrmidon" , "Bodies are strewn in my wake!"
	PlayerClassName = "Parias the Crusader" , "With true faith, one can move mountains!"
	PlayerClassName = "Daedolon the Magister" , "Who Am I? The Lord of the Elements!"
	PlayerClassName = "Illitheya the Druid", "Nature knows no mercy, no kindness."
	name = "Heh... they don't stand a chance."
}

Skill SkillFive
{
	disablecheats
	fastmonsters
	TextColor = "Brick" 
	spawnfilter = nightmare
	RespawnTime = 420
	RespawnLimit = 2
	aggressiveness = 0.9
	ammofactor = 1.5
	damagefactor = 1.1
	MonsterHealth = 1.2
	ACSReturn = 4
	MustConfirm = "Are you positively certain that's a good idea? Monsters will have more HP, will deal more damage, and will respawn!" 
	PlayerClassName = "Baratus the Myrmidon" , "No. You are already dead."
	PlayerClassName = "Parias the Crusader" , "Behold! I am Ascending!"
	PlayerClassName = "Daedolon the Magister" , "I'm a Motherfuckin' Magister!"
	PlayerClassName = "Illitheya the Druid", "Such is the lot of the Avatar of Genesis."
	name = "Level 20 and Rising."
}

Map WALPTEST "Walpurgisnacht"
{
	Music = "CELTWALP"
	Sky1 = "STELLAR" 
	AllowMonsterTelefrags
}

Map WALPTES2 "Walpurgisnacht"
{
	Music = "CELTWALP"
	Sky1 = "STELLAR" 
	AllowMonsterTelefrags
}

gamedefaults
{
	F1 = "WalpHelp"
	missilesactivateimpactlines
}
automap
{
	base = "Raven"
	showlocks = True
	SpecialWallColor = "00 33 33"
}
I also have a filter mapinfo that loads under /filter/doom.id.doom2 in order to apply Olicym's Doom II Intermission screens. This is part of Walpurgis, and I have always assumed it appends to the root directory one, since they have no competing information:

Code: Select all

// MAPINFO for Doom 2

clearepisodes
episode map01
{
	name = "$TXT_D2E1"
	key = "h"
}

episode level01
{
	name = "$TXT_D2E2"
	key = "n"
	optional
}

defaultmap
{
	sucktime = 1
}

map MAP01 lookup "HUSTR_1"
{
	titlepatch = "CWILV00"
	next = "MAP02"
	secretnext = "MAP02"
	sky1 = "SKY1"
	cluster = 5
	par = 30
	music = "$MUSIC_RUNNIN"
	exitpic = "$INTMAP1"
	enterpic = "$INTMAP1"
}

map MAP02 lookup "HUSTR_2"
{
	titlepatch = "CWILV01"
	next = "MAP03"
	secretnext = "MAP03"
	sky1 = "SKY1"
	cluster = 5
	par = 90
	music = "$MUSIC_STALKS"
	exitpic = "$INTMAP1"
	enterpic = "$INTMAP1"
}

map MAP03 lookup "HUSTR_3"
{
	titlepatch = "CWILV02"
	next = "MAP04"
	secretnext = "MAP04"
	sky1 = "SKY1"
	cluster = 5
	par = 120
	music = "$MUSIC_COUNTD"
	exitpic = "$INTMAP1"
	enterpic = "$INTMAP1"
}

map MAP04 lookup "HUSTR_4"
{
	titlepatch = "CWILV03"
	next = "MAP05"
	secretnext = "MAP05"
	sky1 = "SKY1"
	cluster = 5
	par = 120
	music = "$MUSIC_BETWEE"
	exitpic = "$INTMAP1"
	enterpic = "$INTMAP1"
}

map MAP05 lookup "HUSTR_5"
{
	titlepatch = "CWILV04"
	next = "MAP06"
	secretnext = "MAP06"
	sky1 = "SKY1"
	cluster = 5
	par = 90
	music = "$MUSIC_DOOM"
	exitpic = "$INTMAP1"
	enterpic = "$INTMAP1"
}

map MAP06 lookup "HUSTR_6"
{
	titlepatch = "CWILV05"
	next = "MAP07"
	secretnext = "MAP07"
	sky1 = "SKY1"
	cluster = 5
	par = 150
	sucktime = 1
	music = "$MUSIC_THE_DA"
	needclustertext
	exitpic = "$INTMAP1"
	enterpic = "$INTMAP1"
}

map MAP07 lookup "HUSTR_7"
{
	titlepatch = "CWILV06"
	next = "MAP08"
	secretnext = "MAP08"
	sky1 = "SKY1"
	cluster = 6
	par = 120
	map07special
	music = "$MUSIC_SHAWN"
	exitpic = "$INTMAP2"
	enterpic = "$INTMAP1"
}

map MAP08 lookup "HUSTR_8"
{
	titlepatch = "CWILV07"
	next = "MAP09"
	secretnext = "MAP09"
	sky1 = "SKY1"
	cluster = 6
	par = 120
	music = "$MUSIC_DDTBLU"
	exitpic = "$INTMAP2"
	enterpic = "$INTMAP2"
}

map MAP09 lookup "HUSTR_9"
{
	titlepatch = "CWILV08"
	next = "MAP10"
	secretnext = "MAP10"
	sky1 = "SKY1"
	cluster = 6
	par = 270
	music = "$MUSIC_IN_CIT"
	exitpic = "$INTMAP2"
	enterpic = "$INTMAP2"
}

map MAP10 lookup "HUSTR_10"
{
	titlepatch = "CWILV09"
	next = "MAP11"
	secretnext = "MAP11"
	sky1 = "SKY1"
	cluster = 6
	par = 90
	music = "$MUSIC_DEAD"
	exitpic = "$INTMAP2"
	enterpic = "$INTMAP2"
}

map MAP11 lookup "HUSTR_11"
{
	titlepatch = "CWILV10"
	next = "MAP12"
	secretnext = "MAP12"
	sky1 = "SKY1"
	cluster = 6
	par = 210
	music = "$MUSIC_STLKS2"
	needclustertext
	exitpic = "$INTMAP2"
	enterpic = "$INTMAP2"
}

map MAP12 lookup "HUSTR_12"
{
	titlepatch = "CWILV11"
	next = "MAP13"
	secretnext = "MAP13"
	sky1 = "SKY2"
	cluster = 7
	par = 150
	music = "$MUSIC_THEDA2"
	exitpic = "$INTMAP3"
	enterpic = "$INTMAP2"
}

map MAP13 lookup "HUSTR_13"
{
	titlepatch = "CWILV12"
	next = "MAP14"
	secretnext = "MAP14"
	sky1 = "SKY2"
	cluster = 7
	par = 150
	music = "$MUSIC_DOOM2"
	exitpic = "$INTMAP3"
	enterpic = "$INTMAP3"
}

map MAP14 lookup "HUSTR_14"
{
	titlepatch = "CWILV13"
	next = "MAP15"
	secretnext = "MAP15"
	sky1 = "SKY2"
	cluster = 7
	par = 150
	music = "$MUSIC_DDTBL2"
	exitpic = "$INTMAP3"
	enterpic = "$INTMAP3"
}

map MAP15 lookup "HUSTR_15"
{
	titlepatch = "CWILV14"
	next = "MAP16"
	secretnext = "MAP31"
	sky1 = "SKY2"
	cluster = 7
	par = 210
	music = "$MUSIC_RUNNI2"
	needclustertext
	exitpic = "$INTMAP3"
	enterpic = "$INTMAP3"
}

map MAP16 lookup "HUSTR_16"
{
	titlepatch = "CWILV15"
	next = "MAP17"
	secretnext = "MAP17"
	sky1 = "SKY2"
	cluster = 7
	par = 150
	music = "$MUSIC_DEAD2"
	exitpic = "$INTMAP3"
	enterpic = "$INTMAP3"
}

map MAP17 lookup "HUSTR_17"
{
	titlepatch = "CWILV16"
	next = "MAP18"
	secretnext = "MAP18"
	sky1 = "SKY2"
	cluster = 7
	par = 420
	music = "$MUSIC_STLKS3"
	exitpic = "$INTMAP3"
	enterpic = "$INTMAP3"
}

map MAP18 lookup "HUSTR_18"
{
	titlepatch = "CWILV17"
	next = "MAP19"
	secretnext = "MAP19"
	sky1 = "SKY2"
	cluster = 7
	par = 150
	music = "$MUSIC_ROMERO"
	exitpic = "$INTMAP3"
	enterpic = "$INTMAP3"
}

map MAP19 lookup "HUSTR_19"
{
	titlepatch = "CWILV18"
	next = "MAP20"
	secretnext = "MAP20"
	sky1 = "SKY2"
	cluster = 7
	par = 210
	music = "$MUSIC_SHAWN2"
	exitpic = "$INTMAP3"
	enterpic = "$INTMAP3"
}

map MAP20 lookup "HUSTR_20"
{
	titlepatch = "CWILV19"
	next = "MAP21"
	secretnext = "MAP21"
	sky1 = "SKY2"
	cluster = 7
	par = 150
	music = "$MUSIC_MESSAG"
	needclustertext
	exitpic = "$INTMAP3"
	enterpic = "$INTMAP3"
}

map MAP21 lookup "HUSTR_21"
{
	titlepatch = "CWILV20"
	next = "MAP22"
	secretnext = "MAP22"
	sky1 = "SKY3"
	cluster = 8
	par = 240
	music = "$MUSIC_COUNT2"
	exitpic = "$INTMAP4"
	enterpic = "$INTMAP3"
}

map MAP22 lookup "HUSTR_22"
{
	titlepatch = "CWILV21"
	next = "MAP23"
	secretnext = "MAP23"
	sky1 = "SKY3"
	cluster = 8
	par = 150
	music = "$MUSIC_DDTBL3"
	exitpic = "$INTMAP4"
	enterpic = "$INTMAP4"
}

map MAP23 lookup "HUSTR_23"
{
	titlepatch = "CWILV22"
	next = "MAP24"
	secretnext = "MAP24"
	sky1 = "SKY3"
	cluster = 8
	par = 180
	music = "$MUSIC_AMPIE"
	exitpic = "$INTMAP4"
	enterpic = "$INTMAP4"
}

map MAP24 lookup "HUSTR_24"
{
	titlepatch = "CWILV23"
	next = "MAP25"
	secretnext = "MAP25"
	sky1 = "SKY3"
	cluster = 8
	par = 150
	music = "$MUSIC_THEDA3"
	exitpic = "$INTMAP4"
	enterpic = "$INTMAP4"
}

map MAP25 lookup "HUSTR_25"
{
	titlepatch = "CWILV24"
	next = "MAP26"
	secretnext = "MAP26"
	sky1 = "SKY3"
	cluster = 8
	par = 150
	music = "$MUSIC_ADRIAN"
	exitpic = "$INTMAP4"
	enterpic = "$INTMAP4"
}

map MAP26 lookup "HUSTR_26"
{
	titlepatch = "CWILV25"
	next = "MAP27"
	secretnext = "MAP27"
	sky1 = "SKY3"
	cluster = 8
	par = 300
	music = "$MUSIC_MESSG2"
	exitpic = "$INTMAP4"
	enterpic = "$INTMAP4"
}

map MAP27 lookup "HUSTR_27"
{
	titlepatch = "CWILV26"
	next = "MAP28"
	secretnext = "MAP28"
	sky1 = "SKY3"
	cluster = 8
	par = 330
	music = "$MUSIC_ROMER2"
	exitpic = "$INTMAP4"
	enterpic = "$INTMAP4"
}

map MAP28 lookup "HUSTR_28"
{
	titlepatch = "CWILV27"
	next = "MAP29"
	secretnext = "MAP29"
	sky1 = "SKY3"
	cluster = 8
	par = 420
	music = "$MUSIC_TENSE"
	exitpic = "$INTMAP4"
	enterpic = "$INTMAP4"
}

map MAP29 lookup "HUSTR_29"
{
	titlepatch = "CWILV28"
	next = "MAP30"
	secretnext = "MAP30"
	sky1 = "SKY3"
	cluster = 8
	par = 300
	music = "$MUSIC_SHAWN3"
	exitpic = "$INTMAP4"
	enterpic = "$INTMAP4"
}

map MAP30 lookup "HUSTR_30"
{
	titlepatch = "CWILV29"
	next = "EndGameC"
	secretnext = "EndGameC"
	sky1 = "SKY3"
	cluster = 8
	par = 180
	allowmonstertelefrags
	music = "$MUSIC_OPENIN"
	needclustertext
	exitpic = "$INTMAP4"
	enterpic = "$INTMAP4"
}

map MAP31 lookup "HUSTR_31"
{
	titlepatch = "CWILV30"
	next = "MAP16"
	secretnext = "MAP32"
	sky1 = "SKY3"
	cluster = 9
	par = 120
	music = "$MUSIC_EVIL"
	exitpic = "$INTMAP3"
	enterpic = "$INTMAP5"
}

map MAP32 lookup "HUSTR_32"
{
	titlepatch = "CWILV31"
	next = "MAP16"
	secretnext = "MAP16"
	sky1 = "SKY3"
	cluster = 10
	par = 30
	music = "$MUSIC_ULTIMA"
	exitpic = "$INTMAP3"
	enterpic = "$INTMAP6"
}

// DOOM II first cluster (up thru level 6)

cluster 5
{
	flat = "$BGFLAT06"
	exittext = lookup, "C1TEXT"

}

// DOOM II second cluster (up thru level 11)

cluster 6
{
	flat = "$BGFLAT11"
	exittext = lookup, "C2TEXT"

}

// DOOM II third cluster (up thru level 20)

cluster 7
{
	flat = "$BGFLAT20"
	exittext = lookup, "C3TEXT"
}

// DOOM II fourth cluster (up thru level 30)

cluster 8
{
	flat = "$BGFLAT30"
	exittext = lookup, "C4TEXT"
}

// DOOM II fifth cluster (level 31)

cluster 9
{
	flat = "$BGFLAT15"
	entertext = lookup, "C5TEXT"
}

// DOOM II sixth cluster (level 32)

cluster 10
{
	flat = "$BGFLAT31"
	entertext = lookup, "C6TEXT"
}
Then I have patch which does not include a Mapinfo as I didn't think it was neccessary (as it's just altering some of the map-packs ACS). This works fine with Wadsmoosh. What am I doing wrong to make it work with a smoosh but not with a DOOM 2 iwad? Literally all I want is for the map called HUB to be loaded by the Doom II iwad rather than it loading MAP01. It's likely something dumb I have overlooked, but I would appeciate some input. Thanks in advance! :)
User avatar
Player701
 
 
Posts: 1473
Joined: Wed May 13, 2009 3:15 am
Graphics Processor: nVidia with Vulkan support
Location: Russia

Re: Doom II iwad not respecting MAPINFO replacement?

Post by Player701 »

Not entirely sure what you mean by "automatically load the starting hub map". AFAIK, in single-player games only the TITLEMAP can be loaded automatically, and only if present (otherwise GZDoom shows the TITLEPIC).

But I do see a potential error in your MAPINFOs:
  1. In the first MAPINFO, you have clearepisodes and then episode HUB { ... }.
  2. In the third MAPINFO, you again have clearepisodes and then episode map01 { ... } and episode level01 { ... }.
  3. The above means that your episode HUB { ... } block has no effect.
Also, you're saying it works fine with Wadsmoosh but not with the Doom II IWAD, which is likely because you have the third MAPINFO under /filter/doom.id.doom2. So I guess that's where your problem must be then.

Return to “Scripting”