kb1 Posted April 19, 2017 (edited) 43 minutes ago, Graf Zahl said: Careful. Remember that the text is typed on? If the length is different, so is the timing, so this is important. Of course one should assume that it is constant as long as the same text is used. Yes, this can cause multi-level demos to go out of sync. On the string thing: Maybe that was a bad example, so let me state it differently: All source ports should be able to take advantage of a MAPINFO parser. Advanced features that require adding new systems to the port should be on a separate line, and be ignorable by ports that don't yet want to implement the new feature. Basically, for the bulk of the MAPINFO file, you're effectively taking hard-coded values in the engine, and replacing them with variables directly set by the MAPINFO parser, if that makes sense. Those should be able to be implemented by all ports, whereas some more advanced features can be ignored by the port (at it's peril). Does that make sense? @Bauul: Typically, the text length will be the same, as spaces will be added if your DeHacked Text is smaller, thus the timing is the same. And, you're not allowed to increase the size (with true DeHacked). But, in ports, they have to be careful to manage the timing. However, demos will be built with whatever text length is specified, so, unless you subsequently change the text size, demos will stay in sync. Edited April 19, 2017 by kb1 0 Quote Share this post Link to post
Graf Zahl Posted April 19, 2017 Changing a MAPINFO is not that different from changing the actual level in that regard. Just because it's a separate lump doesn't mean that the data won't affect how the level plays. I don't really see this as a problem. Normally you'd expect to use the same version of a mod to play back a demo as it was recorded with. 0 Quote Share this post Link to post
Albertoni Posted April 19, 2017 41 minutes ago, Graf Zahl said: Careful. Remember that the text is typed on? If the length is different, so is the timing, so this is important. Of course one should assume that it is constant as long as the same text is used. Yes, I'm assuming exactly that, and that is why I'm not worrying. My sole single worry would be the different amount of code before intermission and text screens causing a desync, but no tics are supposed to be run during those moments, as the Doom engine seems to be pretty much single-threaded other than audio. Since you know the engine better than me, can you think of anything I'd need to watch out for? 10 minutes ago, Bauul said: Maybe I'm just being confused, but are we talking basically about desync issues if someone attempted to run a demo on a wad that had been updated with new MAPINFO? Because almost aside from MAPINFO, that's inviting problems. Everyone knows you don't try to run demo files on anything other than the exact version of the wad it was recorded on. I'm going to modify the way it runs the original WADs. Now read your last sentence and take a deep (hopeful) breath. 0 Quote Share this post Link to post
Bauul Posted April 19, 2017 13 minutes ago, Albertoni said: I'm going to modify the way it runs the original WADs. Now read your last sentence and take a deep (hopeful) breath. I'm being confused then! So I know this is a really, really basic question, but why would updating a source port to read MAPINFO lumps (if present) play back demos differently in an old WAD that didn't contain a MAPINFO lump? 0 Quote Share this post Link to post
Graf Zahl Posted April 19, 2017 If that happened the implementation would be faulty. 0 Quote Share this post Link to post
Albertoni Posted April 19, 2017 1 hour ago, Bauul said: I'm being confused then! So I know this is a really, really basic question, but why would updating a source port to read MAPINFO lumps (if present) play back demos differently in an old WAD that didn't contain a MAPINFO lump? Because the original IWADs will run through the new system. If there is any problem with that implementation, everything breaks down. It makes very little sense to leave the current spaghetti code untouched for WADs without MAPINFO. Fear of breaking things is the only reason. And while it's a possible solution if all else fails, you'd just be adding to the pile of spaghetti. 0 Quote Share this post Link to post
Jayextee Posted April 19, 2017 If demo playback is affected by a thing the MAPINFO specified (the given example was intermission text), is there any harm in disabling such a change when -record and -playdemo are used? I don't think the demo scene would mind missing out on a wee bit of story, like. 1 Quote Share this post Link to post
Graf Zahl Posted April 19, 2017 3 minutes ago, Albertoni said: It makes very little sense to leave the current spaghetti code untouched for WADs without MAPINFO. Fear of breaking things is the only reason. And while it's a possible solution if all else fails, you'd just be adding to the pile of spaghetti. On the contrary. It makes a lot of sense to leave all the old code in place, because otherwise you'd have no chance in case something goes wrong. Have you ever seen how much seemingly needless cruft there is in PrBoom? That's all for the sole reason that even the most inane demo desync can be prevented. Were we talking about an engine that doesn't care much about such considerations things would be different, but as they are I'd rather play it safe. 1 Quote Share this post Link to post
Graf Zahl Posted April 19, 2017 Just now, Jayextee said: If demo playback is affected by a thing the MAPINFO specified (the given example was intermission text), is there any harm in disabling such a change when -record and -playdemo are used? I don't think the demo scene would mind missing out on a wee bit of story, like. That's why no MAPINFO related feature may ever be used if no MAPINFO is specified. If a plain WAD is loaded, all the original code needs to be there to handle it. 4 Quote Share this post Link to post
Bauul Posted April 19, 2017 (edited) 8 minutes ago, Albertoni said: Because the original IWADs will run through the new system. If there is any problem with that implementation, everything breaks down. It makes very little sense to leave the current spaghetti code untouched for WADs without MAPINFO. Fear of breaking things is the only reason. And while it's a possible solution if all else fails, you'd just be adding to the pile of spaghetti. Ah ok, thanks. I was under the impression leaving the code untouched for WADS without MAPINFO (including the IWADS) would be exactly the right way to do it. Edit: Seems I wasn't the only one! Edited April 19, 2017 by Bauul 0 Quote Share this post Link to post
Albertoni Posted April 19, 2017 @Graf Zahl & @Bauul I haven't seen the cruft, but I'll trust you. And yes, I'll play it safe. Thanks for pushing me into a "don't break compatibility" mindset. Let me rethink my route of approach to the code then... 0 Quote Share this post Link to post
Marcaek Posted April 20, 2017 I'd like to see support for custom intermission maps in the style of Doom 1 too, not sure if it warrants its own thread though. 0 Quote Share this post Link to post
Albertoni Posted April 20, 2017 13 minutes ago, Marcaek said: I'd like to see support for custom intermission maps in the style of Doom 1 too, not sure if it warrants its own thread though. You can do that with MAPINFO already. It's just hard. https://zdoom.org/wiki/Intermission_script 0 Quote Share this post Link to post
Marcaek Posted April 20, 2017 I was talking in the context of the topic 0 Quote Share this post Link to post
LexiMax Posted April 20, 2017 1 hour ago, Marcaek said: I'd like to see support for custom intermission maps in the style of Doom 1 too, not sure if it warrants its own thread though. There's a reason why it's handled via a script in ZDoom. Episode 2 not only has blood splats over completed maps, but also gradually builds the tower of babel throughout the episode and only renders Fortress of Mystery when you actually are entering that level. I think there might be some map changes in Episode 3 too. I'm not sure it's wise to begin down the road of intermission screen modification in a standard that's designed to be a least common denominator and easy to implement. Maybe just a simple "draw a blood splat at X,Y" token would be okay. Does Doom 2 even have the splat in its WAD anyway? 0 Quote Share this post Link to post
TimeOfDeath666 Posted April 20, 2017 You can make custom intermission maps by replacing the CWILV graphics. This thread says they can only be 320x158 in vanilla, but you can make them fullscreen in prboom-plus (except the two rows of pixels at the top). 0 Quote Share this post Link to post
Marcaek Posted April 20, 2017 I guess this can get back on topic then. 0 Quote Share this post Link to post
Graf Zahl Posted April 20, 2017 Once the whole MAPINFO thing is running it shouldn't be too hard to backport that code from ZDoom. Unlike much of the engine, before porting it to ZScript, wi_stuff.cpp was still quite close to id's original code - and more importantly, contained. 0 Quote Share this post Link to post
fabian Posted April 20, 2017 19 hours ago, Graf Zahl said: How should progress be possible if the very first thing that comes up is not some thoughts how to do it, but some thoughts why NOT to do it? Well, the question in the thread title is "Why is it...?" and I just gave an answer to that. Also, I never said it's not worth doing it, but gave reasons why other smaller projects might get higher priorities. 0 Quote Share this post Link to post
fraggle Posted April 20, 2017 On 4/18/2017 at 4:45 PM, Death Egg said: How is using it considered against the spirit of vanilla? I'm confused by the original premise of the question. Vanilla ("vanilla true" in this context?) usually just means "uses only the features that are in vanilla". If MAPINFO isn't in vanilla then it shouldn't be surprising that "vanilla" ports don't support it. So what exactly do you mean? You mention PrBoom+ and Crispy Doom; are you talking about some category of ports that is midway between "vanilla" and "limit removing" and slightly more liberal about accepting new features? 0 Quote Share this post Link to post
Graf Zahl Posted April 20, 2017 14 hours ago, AlexMax said: I'm not sure it's wise to begin down the road of intermission screen modification in a standard that's designed to be a least common denominator and easy to implement. Maybe just a simple "draw a blood splat at X,Y" token would be okay. Does Doom 2 even have the splat in its WAD anyway? In general I'd agree. But don't forget that all the code for this already exists, and having just worked on wi_stuff.c, refactoring the entire background stuff out of the main code may be a good idea anyway to reduce the number of hacks in there. All in due time, though. The reason why I made this stuff scriptable in ZDoom was not to get a new feature but simply as a means to clean up some piece of code that had become utterly unwieldy. And PrBoom's version doesn't look that much better, it's just missing the Raven game additions that added another layer of problems to ZDoom's version. 0 Quote Share this post Link to post
kb1 Posted April 20, 2017 2 hours ago, Graf Zahl said: In general I'd agree. But don't forget that all the code for this already exists, and having just worked on wi_stuff.c, refactoring the entire background stuff out of the main code may be a good idea anyway to reduce the number of hacks in there. All in due time, though. The reason why I made this stuff scriptable in ZDoom was not to get a new feature but simply as a means to clean up some piece of code that had become utterly unwieldy. And PrBoom's version doesn't look that much better, it's just missing the Raven game additions that added another layer of problems to ZDoom's version. I don't know if this if helpful or not - this is how MAPINFO is handled in KBDoom. It may be useful, simply as a reminder of what is needed to support the originals, maintaining sync: Spoiler /* Mapsetups */ mapsetup Doom.E1M1 { gamemission Doom episode 1 mapnum 1 mapname HUSTR_E1M1 mapnameimage WILV00 interpic WIMAP0 music E1M1 normalexitmapnum 2 skytexture SKY1 partime 30 worldmapx 185 worldmapy 164 } mapsetup Doom.E1M2 { gamemission Doom episode 1 mapnum 2 mapname HUSTR_E1M2 mapnameimage WILV01 interpic WIMAP0 music E1M2 normalexitmapnum 3 skytexture SKY1 partime 75 worldmapx 148 worldmapy 143 } mapsetup Doom.E1M3 { gamemission Doom episode 1 mapnum 3 mapname HUSTR_E1M3 mapnameimage WILV02 interpic WIMAP0 music E1M3 normalexitmapnum 4 secretexitmapnum 9 skytexture SKY1 partime 120 worldmapx 69 worldmapy 122 } mapsetup Doom.E1M4 { gamemission Doom episode 1 mapnum 4 mapname HUSTR_E1M4 mapnameimage WILV03 interpic WIMAP0 music E1M4 normalexitmapnum 5 skytexture SKY1 partime 90 worldmapx 209 worldmapy 102 } mapsetup Doom.E1M5 { gamemission Doom episode 1 mapnum 5 mapname HUSTR_E1M5 mapnameimage WILV04 interpic WIMAP0 music E1M5 normalexitmapnum 6 skytexture SKY1 partime 165 worldmapx 116 worldmapy 89 } mapsetup Doom.E1M6 { gamemission Doom episode 1 mapnum 6 mapname HUSTR_E1M6 mapnameimage WILV05 interpic WIMAP0 music E1M6 normalexitmapnum 7 skytexture SKY1 partime 180 worldmapx 166 worldmapy 55 } mapsetup Doom.E1M7 { gamemission Doom episode 1 mapnum 7 mapname HUSTR_E1M7 mapnameimage WILV06 interpic WIMAP0 music E1M7 normalexitmapnum 8 skytexture SKY1 partime 180 worldmapx 71 worldmapy 56 } mapsetup Doom.E1M8 { gamemission Doom episode 1 mapnum 8 mapname HUSTR_E1M8 mapnameimage WILV07 interpic WIMAP0 music E1M8 skytexture SKY1 partime 30 bossexittype E1M8 finaleflags TEXT ENDPIC NOINTERMISSION NONEXTLEVEL endpic CREDIT endtext E1TEXT endflat FLOOR4_8 endmusic Doom1_Victory worldmapx 135 worldmapy 29 } mapsetup Doom.E1M9 { gamemission Doom episode 1 mapnum 9 mapname HUSTR_E1M9 mapnameimage WILV08 interpic WIMAP0 music E1M9 normalexitmapnum 4 skytexture SKY1 partime 165 worldmapx 71 worldmapy 24 } mapsetup Doom.E2M1 { gamemission Doom episode 2 mapnum 1 mapname HUSTR_E2M1 mapnameimage WILV10 interpic WIMAP1 music E2M1 normalexitmapnum 2 skytexture SKY2 partime 90 worldmapx 254 worldmapy 25 } mapsetup Doom.E2M2 { gamemission Doom episode 2 mapnum 2 mapname HUSTR_E2M2 mapnameimage WILV11 interpic WIMAP1 music E2M2 normalexitmapnum 3 skytexture SKY2 partime 90 worldmapx 97 worldmapy 50 } mapsetup Doom.E2M3 { gamemission Doom episode 2 mapnum 3 mapname HUSTR_E2M3 mapnameimage WILV12 interpic WIMAP1 music E2M3 normalexitmapnum 4 skytexture SKY2 partime 90 worldmapx 188 worldmapy 64 } mapsetup Doom.E2M4 { gamemission Doom episode 2 mapnum 4 mapname HUSTR_E2M4 mapnameimage WILV13 interpic WIMAP1 music E2M4 normalexitmapnum 5 skytexture SKY2 partime 120 worldmapx 128 worldmapy 78 } mapsetup Doom.E2M5 { gamemission Doom episode 2 mapnum 5 mapname HUSTR_E2M5 mapnameimage WILV14 interpic WIMAP1 music E2M5 normalexitmapnum 6 secretexitmapnum 9 skytexture SKY2 partime 90 worldmapx 214 worldmapy 92 } mapsetup Doom.E2M6 { gamemission Doom episode 2 mapnum 6 mapname HUSTR_E2M6 mapnameimage WILV15 interpic WIMAP1 music E2M6 normalexitmapnum 7 skytexture SKY2 partime 360 worldmapx 133 worldmapy 130 } mapsetup Doom.E2M7 { gamemission Doom episode 2 mapnum 7 mapname HUSTR_E2M7 mapnameimage WILV16 interpic WIMAP1 music E2M7 normalexitmapnum 8 skytexture SKY2 partime 240 worldmapx 208 worldmapy 136 } mapsetup Doom.E2M8 { gamemission Doom episode 2 mapnum 8 mapname HUSTR_E2M8 mapnameimage WILV17 interpic WIMAP1 music E2M8 skytexture SKY2 partime 30 bossexittype E2M8 finaleflags TEXT ENDPIC NOINTERMISSION NONEXTLEVEL endpic VICTORY2 endtext E2TEXT endflat SFLR6_1 endmusic Doom1_Victory worldmapx 148 worldmapy 140 } mapsetup Doom.E2M9 { gamemission Doom episode 2 mapnum 9 mapname HUSTR_E2M9 mapnameimage WILV18 interpic WIMAP1 music E2M9 normalexitmapnum 6 skytexture SKY2 partime 170 worldmapx 235 worldmapy 158 } mapsetup Doom.E3M1 { gamemission Doom episode 3 mapnum 1 mapname HUSTR_E3M1 mapnameimage WILV20 interpic WIMAP2 music E3M1 normalexitmapnum 2 skytexture SKY3 partime 90 worldmapx 156 worldmapy 168 } mapsetup Doom.E3M2 { gamemission Doom episode 3 mapnum 2 mapname HUSTR_E3M2 mapnameimage WILV21 interpic WIMAP2 music E3M2 normalexitmapnum 3 skytexture SKY3 partime 45 worldmapx 48 worldmapy 154 } mapsetup Doom.E3M3 { gamemission Doom episode 3 mapnum 3 mapname HUSTR_E3M3 mapnameimage WILV22 interpic WIMAP2 music E3M3 normalexitmapnum 4 skytexture SKY3 partime 90 worldmapx 174 worldmapy 95 } mapsetup Doom.E3M4 { gamemission Doom episode 3 mapnum 4 mapname HUSTR_E3M4 mapnameimage WILV23 interpic WIMAP2 music E3M4 normalexitmapnum 5 skytexture SKY3 partime 150 worldmapx 265 worldmapy 75 } mapsetup Doom.E3M5 { gamemission Doom episode 3 mapnum 5 mapname HUSTR_E3M5 mapnameimage WILV24 interpic WIMAP2 music E3M5 normalexitmapnum 6 skytexture SKY3 partime 90 worldmapx 130 worldmapy 48 } mapsetup Doom.E3M6 { gamemission Doom episode 3 mapnum 6 mapname HUSTR_E3M6 mapnameimage WILV25 interpic WIMAP2 music E3M6 normalexitmapnum 7 secretexitmapnum 9 skytexture SKY3 partime 90 worldmapx 279 worldmapy 23 } mapsetup Doom.E3M7 { gamemission Doom episode 3 mapnum 7 mapname HUSTR_E3M7 mapnameimage WILV26 interpic WIMAP2 music E3M7 normalexitmapnum 8 skytexture SKY3 partime 165 worldmapx 198 worldmapy 48 } mapsetup Doom.E3M8 { gamemission Doom episode 3 mapnum 8 mapname HUSTR_E3M8 mapnameimage WILV27 interpic WIMAP2 music E3M8 skytexture SKY3 partime 30 bossexittype E3M8 finaleflags TEXT BUNNY NOINTERMISSION NONEXTLEVEL endtext E3TEXT endflat MFLR8_4 endmusic Doom1_Victory worldmapx 140 worldmapy 25 } mapsetup Doom.E3M9 { gamemission Doom episode 3 mapnum 9 mapname HUSTR_E3M9 mapnameimage WILV28 interpic WIMAP2 music E3M9 normalexitmapnum 7 skytexture SKY3 partime 135 worldmapx 281 worldmapy 136 } mapsetup Doom.E4M1 { gamemission Doom episode 4 mapnum 1 mapname HUSTR_E4M1 mapnameimage WILV30 interpic INTERPIC music E4M1 normalexitmapnum 2 skytexture SKY4 } mapsetup Doom.E4M2 { gamemission Doom episode 4 mapnum 2 mapname HUSTR_E4M2 mapnameimage WILV31 interpic INTERPIC music E4M2 normalexitmapnum 3 secretexitmapnum 9 skytexture SKY4 } mapsetup Doom.E4M3 { gamemission Doom episode 4 mapnum 3 mapname HUSTR_E4M3 mapnameimage WILV32 interpic INTERPIC music E4M3 normalexitmapnum 4 skytexture SKY4 } mapsetup Doom.E4M4 { gamemission Doom episode 4 mapnum 4 mapname HUSTR_E4M4 mapnameimage WILV33 interpic INTERPIC music E4M4 normalexitmapnum 5 skytexture SKY4 } mapsetup Doom.E4M5 { gamemission Doom episode 4 mapnum 5 mapname HUSTR_E4M5 mapnameimage WILV34 interpic INTERPIC music E4M5 normalexitmapnum 6 skytexture SKY4 } mapsetup Doom.E4M6 { gamemission Doom episode 4 mapnum 6 mapname HUSTR_E4M6 mapnameimage WILV35 bossexittype E4M6 interpic INTERPIC music E4M6 normalexitmapnum 7 skytexture SKY4 } mapsetup Doom.E4M7 { gamemission Doom episode 4 mapnum 7 mapname HUSTR_E4M7 mapnameimage WILV36 interpic INTERPIC music E4M7 normalexitmapnum 8 skytexture SKY4 } mapsetup Doom.E4M8 { gamemission Doom episode 4 mapnum 8 mapname HUSTR_E4M8 mapnameimage WILV37 interpic INTERPIC music E4M8 skytexture SKY4 bossexittype E4M8 finaleflags TEXT ENDPIC NOINTERMISSION NONEXTLEVEL endpic ENDPIC endtext E4TEXT endflat MFLR8_3 endmusic Doom1_Victory } mapsetup Doom.E4M9 { gamemission Doom episode 4 mapnum 9 mapname HUSTR_E4M9 mapnameimage WILV38 interpic INTERPIC music E4M9 normalexitmapnum 3 skytexture SKY4 } mapsetup DoomII.MAP01 { gamemission Doom2 episode 1 mapnum 1 mapname HUSTR_1 mapnameimage CWILV00 interpic INTERPIC music MAP01 normalexitmapnum 2 skytexture SKY1 partime 30 } mapsetup DoomII.MAP02 { gamemission Doom2 episode 1 mapnum 2 mapname HUSTR_2 mapnameimage CWILV01 interpic INTERPIC music MAP02 normalexitmapnum 3 skytexture SKY1 partime 90 } mapsetup DoomII.MAP03 { gamemission Doom2 episode 1 mapnum 3 mapname HUSTR_3 mapnameimage CWILV02 interpic INTERPIC music MAP03 normalexitmapnum 4 skytexture SKY1 partime 120 } mapsetup DoomII.MAP04 { gamemission Doom2 episode 1 mapnum 4 mapname HUSTR_4 mapnameimage CWILV03 interpic INTERPIC music MAP04 normalexitmapnum 5 skytexture SKY1 partime 120 } mapsetup DoomII.MAP05 { gamemission Doom2 episode 1 mapnum 5 mapname HUSTR_5 mapnameimage CWILV04 interpic INTERPIC music MAP05 normalexitmapnum 6 skytexture SKY1 partime 90 } mapsetup DoomII.MAP06 { gamemission Doom2 episode 1 mapnum 6 mapname HUSTR_6 mapnameimage CWILV05 interpic INTERPIC music MAP06 normalexitmapnum 7 skytexture SKY1 partime 150 finaleflags TEXT endflat SLIME16 endtext C1TEXT endmusic Doom2_Victory } mapsetup DoomII.MAP07 { gamemission Doom2 episode 1 mapnum 7 mapname HUSTR_7 mapnameimage CWILV06 bossexittype MAP07 interpic INTERPIC music MAP07 normalexitmapnum 8 skytexture SKY1 partime 120 } mapsetup DoomII.MAP08 { gamemission Doom2 episode 1 mapnum 8 mapname HUSTR_8 mapnameimage CWILV07 interpic INTERPIC music MAP08 normalexitmapnum 9 skytexture SKY1 partime 120 } mapsetup DoomII.MAP09 { gamemission Doom2 episode 1 mapnum 9 mapname HUSTR_9 mapnameimage CWILV08 interpic INTERPIC music MAP09 normalexitmapnum 10 skytexture SKY1 partime 270 } mapsetup DoomII.MAP10 { gamemission Doom2 episode 1 mapnum 10 mapname HUSTR_10 mapnameimage CWILV09 interpic INTERPIC music MAP10 normalexitmapnum 11 skytexture SKY1 partime 90 } mapsetup DoomII.MAP11 { gamemission Doom2 episode 1 mapnum 11 mapname HUSTR_11 mapnameimage CWILV10 interpic INTERPIC music MAP11 normalexitmapnum 12 skytexture SKY1 partime 210 finaleflags TEXT endflat RROCK14 endtext C2TEXT endmusic Doom2_Victory } mapsetup DoomII.MAP12 { gamemission Doom2 episode 1 mapnum 12 mapname HUSTR_12 mapnameimage CWILV11 interpic INTERPIC music MAP12 normalexitmapnum 13 skytexture SKY2 partime 150 } mapsetup DoomII.MAP13 { gamemission Doom2 episode 1 mapnum 13 mapname HUSTR_13 mapnameimage CWILV12 interpic INTERPIC music MAP13 normalexitmapnum 14 skytexture SKY2 partime 150 } mapsetup DoomII.MAP14 { gamemission Doom2 episode 1 mapnum 14 mapname HUSTR_14 mapnameimage CWILV13 interpic INTERPIC music MAP14 normalexitmapnum 15 skytexture SKY2 partime 150 } mapsetup DoomII.MAP15 { gamemission Doom2 episode 1 mapnum 15 mapname HUSTR_15 mapnameimage CWILV14 interpic INTERPIC music MAP15 normalexitmapnum 16 secretexitmapnum 31 skytexture SKY2 partime 210 finaleflags TEXT SECRETONLY NOENTERING endflat RROCK13 endtext C5TEXT endmusic Doom2_Victory } mapsetup DoomII.MAP16 { gamemission Doom2 episode 1 mapnum 16 mapname HUSTR_16 mapnameimage CWILV15 interpic INTERPIC music MAP16 normalexitmapnum 17 skytexture SKY2 partime 150 } mapsetup DoomII.MAP17 { gamemission Doom2 episode 1 mapnum 17 mapname HUSTR_17 mapnameimage CWILV16 interpic INTERPIC music MAP17 normalexitmapnum 18 skytexture SKY2 partime 420 } mapsetup DoomII.MAP18 { gamemission Doom2 episode 1 mapnum 18 mapname HUSTR_18 mapnameimage CWILV17 interpic INTERPIC music MAP18 normalexitmapnum 19 skytexture SKY2 partime 150 } mapsetup DoomII.MAP19 { gamemission Doom2 episode 1 mapnum 19 mapname HUSTR_19 mapnameimage CWILV18 interpic INTERPIC music MAP19 normalexitmapnum 20 skytexture SKY2 partime 210 } mapsetup DoomII.MAP20 { gamemission Doom2 episode 1 mapnum 20 mapname HUSTR_20 mapnameimage CWILV19 interpic INTERPIC music MAP20 normalexitmapnum 21 skytexture SKY2 partime 150 finaleflags TEXT endflat RROCK07 endtext C3TEXT endmusic Doom2_Victory } mapsetup DoomII.MAP21 { gamemission Doom2 episode 1 mapnum 21 mapname HUSTR_21 mapnameimage CWILV20 interpic INTERPIC music MAP21 normalexitmapnum 22 skytexture SKY3 partime 240 } mapsetup DoomII.MAP22 { gamemission Doom2 episode 1 mapnum 22 mapname HUSTR_22 mapnameimage CWILV21 interpic INTERPIC music MAP22 normalexitmapnum 23 skytexture SKY3 partime 150 } mapsetup DoomII.MAP23 { gamemission Doom2 episode 1 mapnum 23 mapname HUSTR_23 mapnameimage CWILV22 interpic INTERPIC music MAP23 normalexitmapnum 24 skytexture SKY3 partime 180 } mapsetup DoomII.MAP24 { gamemission Doom2 episode 1 mapnum 24 mapname HUSTR_24 mapnameimage CWILV23 interpic INTERPIC music MAP24 normalexitmapnum 25 skytexture SKY3 partime 150 } mapsetup DoomII.MAP25 { gamemission Doom2 episode 1 mapnum 25 mapname HUSTR_25 mapnameimage CWILV24 interpic INTERPIC music MAP25 normalexitmapnum 26 skytexture SKY3 partime 150 } mapsetup DoomII.MAP26 { gamemission Doom2 episode 1 mapnum 26 mapname HUSTR_26 mapnameimage CWILV25 interpic INTERPIC music MAP26 normalexitmapnum 27 skytexture SKY3 partime 300 } mapsetup DoomII.MAP27 { gamemission Doom2 episode 1 mapnum 27 mapname HUSTR_27 mapnameimage CWILV26 interpic INTERPIC music MAP27 normalexitmapnum 28 skytexture SKY3 partime 330 } mapsetup DoomII.MAP28 { gamemission Doom2 episode 1 mapnum 28 mapname HUSTR_28 mapnameimage CWILV27 interpic INTERPIC music MAP28 normalexitmapnum 29 skytexture SKY3 partime 420 } mapsetup DoomII.MAP29 { gamemission Doom2 episode 1 mapnum 29 mapname HUSTR_29 mapnameimage CWILV28 interpic INTERPIC music MAP29 normalexitmapnum 30 skytexture SKY3 partime 300 } mapsetup DoomII.MAP30 { gamemission Doom2 episode 1 mapnum 30 mapname HUSTR_30 mapnameimage CWILV29 interpic INTERPIC music MAP30 normalexitmapnum 31 skytexture SKY3 partime 180 finaleflags TEXT CAST NOENTERING NONEXTLEVEL endflat RROCK17 endtext C4TEXT endmusic Doom2_Victory } mapsetup DoomII.MAP31 { gamemission Doom2 episode 1 mapnum 31 mapname HUSTR_31 mapnameimage CWILV30 interpic INTERPIC music MAP31 normalexitmapnum 16 secretexitmapnum 32 skytexture SKY3 partime 120 finaleflags TEXT SECRETONLY endflat RROCK19 endtext C6TEXT endmusic Doom2_Victory } mapsetup DoomII.MAP32 { gamemission Doom2 episode 1 mapnum 32 mapname HUSTR_32 mapnameimage CWILV31 interpic INTERPIC music MAP32 normalexitmapnum 16 skytexture SKY3 partime 30 } mapsetup Plutonia.MAP01 { gamemission Plutonia episode 1 mapnum 1 mapname PHUSTR_1 mapnameimage CWILV00 interpic INTERPIC music MAP01 normalexitmapnum 2 skytexture SKY1 partime 30 } mapsetup Plutonia.MAP02 { gamemission Plutonia episode 1 mapnum 2 mapname PHUSTR_2 mapnameimage CWILV01 interpic INTERPIC music MAP02 normalexitmapnum 3 skytexture SKY1 partime 90 } mapsetup Plutonia.MAP03 { gamemission Plutonia episode 1 mapnum 3 mapname PHUSTR_3 mapnameimage CWILV02 interpic INTERPIC music MAP03 normalexitmapnum 4 skytexture SKY1 partime 120 } mapsetup Plutonia.MAP04 { gamemission Plutonia episode 1 mapnum 4 mapname PHUSTR_4 mapnameimage CWILV03 interpic INTERPIC music MAP04 normalexitmapnum 5 skytexture SKY1 partime 120 } mapsetup Plutonia.MAP05 { gamemission Plutonia episode 1 mapnum 5 mapname PHUSTR_5 mapnameimage CWILV04 interpic INTERPIC music MAP05 normalexitmapnum 6 skytexture SKY1 partime 90 } mapsetup Plutonia.MAP06 { gamemission Plutonia episode 1 mapnum 6 mapname PHUSTR_6 mapnameimage CWILV05 interpic INTERPIC music MAP06 normalexitmapnum 7 skytexture SKY1 partime 150 finaleflags TEXT endflat SLIME16 endtext P1TEXT endmusic Doom2_Victory } mapsetup Plutonia.MAP07 { gamemission Plutonia episode 1 mapnum 7 mapname PHUSTR_7 mapnameimage CWILV06 bossexittype MAP07 interpic INTERPIC music MAP07 normalexitmapnum 8 skytexture SKY1 partime 120 } mapsetup Plutonia.MAP08 { gamemission Plutonia episode 1 mapnum 8 mapname PHUSTR_8 mapnameimage CWILV07 interpic INTERPIC music MAP08 normalexitmapnum 9 skytexture SKY1 partime 120 } mapsetup Plutonia.MAP09 { gamemission Plutonia episode 1 mapnum 9 mapname PHUSTR_9 mapnameimage CWILV08 interpic INTERPIC music MAP09 normalexitmapnum 10 skytexture SKY1 partime 270 } mapsetup Plutonia.MAP10 { gamemission Plutonia episode 1 mapnum 10 mapname PHUSTR_10 mapnameimage CWILV09 interpic INTERPIC music MAP10 normalexitmapnum 11 skytexture SKY1 partime 90 } mapsetup Plutonia.MAP11 { gamemission Plutonia episode 1 mapnum 11 mapname PHUSTR_11 mapnameimage CWILV10 interpic INTERPIC music MAP11 normalexitmapnum 12 skytexture SKY1 partime 210 finaleflags TEXT endflat RROCK14 endtext P2TEXT endmusic Doom2_Victory } mapsetup Plutonia.MAP12 { gamemission Plutonia episode 1 mapnum 12 mapname PHUSTR_12 mapnameimage CWILV11 interpic INTERPIC music MAP12 normalexitmapnum 13 skytexture SKY2 partime 150 } mapsetup Plutonia.MAP13 { gamemission Plutonia episode 1 mapnum 13 mapname PHUSTR_13 mapnameimage CWILV12 interpic INTERPIC music MAP13 normalexitmapnum 14 skytexture SKY2 partime 150 } mapsetup Plutonia.MAP14 { gamemission Plutonia episode 1 mapnum 14 mapname PHUSTR_14 mapnameimage CWILV13 interpic INTERPIC music MAP14 normalexitmapnum 15 skytexture SKY2 partime 150 } mapsetup Plutonia.MAP15 { gamemission Plutonia episode 1 mapnum 15 mapname PHUSTR_15 mapnameimage CWILV14 interpic INTERPIC music MAP15 normalexitmapnum 16 secretexitmapnum 31 skytexture SKY2 partime 210 finaleflags TEXT SECRETONLY NOENTERING endflat RROCK13 endtext P5TEXT endmusic Doom2_Victory } mapsetup Plutonia.MAP16 { gamemission Plutonia episode 1 mapnum 16 mapname PHUSTR_16 mapnameimage CWILV15 interpic INTERPIC music MAP16 normalexitmapnum 17 skytexture SKY2 partime 150 } mapsetup Plutonia.MAP17 { gamemission Plutonia episode 1 mapnum 17 mapname PHUSTR_17 mapnameimage CWILV16 interpic INTERPIC music MAP17 normalexitmapnum 18 skytexture SKY2 partime 420 } mapsetup Plutonia.MAP18 { gamemission Plutonia episode 1 mapnum 18 mapname PHUSTR_18 mapnameimage CWILV17 interpic INTERPIC music MAP18 normalexitmapnum 19 skytexture SKY2 partime 150 } mapsetup Plutonia.MAP19 { gamemission Plutonia episode 1 mapnum 19 mapname PHUSTR_19 mapnameimage CWILV18 interpic INTERPIC music MAP19 normalexitmapnum 20 skytexture SKY2 partime 210 } mapsetup Plutonia.MAP20 { gamemission Plutonia episode 1 mapnum 20 mapname PHUSTR_20 mapnameimage CWILV19 interpic INTERPIC music MAP20 normalexitmapnum 21 skytexture SKY2 partime 150 finaleflags TEXT endflat RROCK07 endtext P3TEXT endmusic Doom2_Victory } mapsetup Plutonia.MAP21 { gamemission Plutonia episode 1 mapnum 21 mapname PHUSTR_21 mapnameimage CWILV20 interpic INTERPIC music MAP21 normalexitmapnum 22 skytexture SKY3 partime 240 } mapsetup Plutonia.MAP22 { gamemission Plutonia episode 1 mapnum 22 mapname PHUSTR_22 mapnameimage CWILV21 interpic INTERPIC music MAP22 normalexitmapnum 23 skytexture SKY3 partime 150 } mapsetup Plutonia.MAP23 { gamemission Plutonia episode 1 mapnum 23 mapname PHUSTR_23 mapnameimage CWILV22 interpic INTERPIC music MAP23 normalexitmapnum 24 skytexture SKY3 partime 180 } mapsetup Plutonia.MAP24 { gamemission Plutonia episode 1 mapnum 24 mapname PHUSTR_24 mapnameimage CWILV23 interpic INTERPIC music MAP24 normalexitmapnum 25 skytexture SKY3 partime 150 } mapsetup Plutonia.MAP25 { gamemission Plutonia episode 1 mapnum 25 mapname PHUSTR_25 mapnameimage CWILV24 interpic INTERPIC music MAP25 normalexitmapnum 26 skytexture SKY3 partime 150 } mapsetup Plutonia.MAP26 { gamemission Plutonia episode 1 mapnum 26 mapname PHUSTR_26 mapnameimage CWILV25 interpic INTERPIC music MAP26 normalexitmapnum 27 skytexture SKY3 partime 300 } mapsetup Plutonia.MAP27 { gamemission Plutonia episode 1 mapnum 27 mapname PHUSTR_27 mapnameimage CWILV26 interpic INTERPIC music MAP27 normalexitmapnum 28 skytexture SKY3 partime 330 } mapsetup Plutonia.MAP28 { gamemission Plutonia episode 1 mapnum 28 mapname PHUSTR_28 mapnameimage CWILV27 interpic INTERPIC music MAP28 normalexitmapnum 29 skytexture SKY3 partime 420 } mapsetup Plutonia.MAP29 { gamemission Plutonia episode 1 mapnum 29 mapname PHUSTR_29 mapnameimage CWILV28 interpic INTERPIC music MAP29 normalexitmapnum 30 skytexture SKY3 partime 300 } mapsetup Plutonia.MAP30 { gamemission Plutonia episode 1 mapnum 30 mapname PHUSTR_30 mapnameimage CWILV29 interpic INTERPIC music MAP30 normalexitmapnum 31 skytexture SKY3 partime 180 finaleflags TEXT CAST NOENTERING NONEXTLEVEL endflat RROCK17 endtext P4TEXT endmusic Doom2_Victory } mapsetup Plutonia.MAP31 { gamemission Plutonia episode 1 mapnum 31 mapname PHUSTR_31 mapnameimage CWILV30 interpic INTERPIC music MAP31 normalexitmapnum 16 secretexitmapnum 32 skytexture SKY3 partime 120 finaleflags TEXT SECRETONLY endflat RROCK19 endtext P6TEXT endmusic Doom2_Victory } mapsetup Plutonia.MAP32 { gamemission Plutonia episode 1 mapnum 32 mapname PHUSTR_32 mapnameimage CWILV31 interpic INTERPIC music MAP32 normalexitmapnum 16 skytexture SKY3 partime 30 } mapsetup TNT.MAP01 { gamemission TNT episode 1 mapnum 1 mapname THUSTR_1 mapnameimage CWILV00 interpic INTERPIC music MAP01 normalexitmapnum 2 skytexture SKY1 partime 30 } mapsetup TNT.MAP02 { gamemission TNT episode 1 mapnum 2 mapname THUSTR_2 mapnameimage CWILV01 interpic INTERPIC music MAP02 normalexitmapnum 3 skytexture SKY1 partime 90 } mapsetup TNT.MAP03 { gamemission TNT episode 1 mapnum 3 mapname THUSTR_3 mapnameimage CWILV02 interpic INTERPIC music MAP03 normalexitmapnum 4 skytexture SKY1 partime 120 } mapsetup TNT.MAP04 { gamemission TNT episode 1 mapnum 4 mapname THUSTR_4 mapnameimage CWILV03 interpic INTERPIC music MAP04 normalexitmapnum 5 skytexture SKY1 partime 120 } mapsetup TNT.MAP05 { gamemission TNT episode 1 mapnum 5 mapname THUSTR_5 mapnameimage CWILV04 interpic INTERPIC music MAP05 normalexitmapnum 6 skytexture SKY1 partime 90 } mapsetup TNT.MAP06 { gamemission TNT episode 1 mapnum 6 mapname THUSTR_6 mapnameimage CWILV05 interpic INTERPIC music MAP06 normalexitmapnum 7 skytexture SKY1 partime 150 finaleflags TEXT endflat SLIME16 endtext T1TEXT endmusic Doom2_Victory } mapsetup TNT.MAP07 { gamemission TNT episode 1 mapnum 7 mapname THUSTR_7 mapnameimage CWILV06 bossexittype MAP07 interpic INTERPIC music MAP07 normalexitmapnum 8 skytexture SKY1 partime 120 } mapsetup TNT.MAP08 { gamemission TNT episode 1 mapnum 8 mapname THUSTR_8 mapnameimage CWILV07 interpic INTERPIC music MAP08 normalexitmapnum 9 skytexture SKY1 partime 120 } mapsetup TNT.MAP09 { gamemission TNT episode 1 mapnum 9 mapname THUSTR_9 mapnameimage CWILV08 interpic INTERPIC music MAP09 normalexitmapnum 10 skytexture SKY1 partime 270 } mapsetup TNT.MAP10 { gamemission TNT episode 1 mapnum 10 mapname THUSTR_10 mapnameimage CWILV09 interpic INTERPIC music MAP10 normalexitmapnum 11 skytexture SKY1 partime 90 } mapsetup TNT.MAP11 { gamemission TNT episode 1 mapnum 11 mapname THUSTR_11 mapnameimage CWILV10 interpic INTERPIC music MAP11 normalexitmapnum 12 skytexture SKY1 partime 210 finaleflags TEXT endflat RROCK14 endtext T2TEXT endmusic Doom2_Victory } mapsetup TNT.MAP12 { gamemission TNT episode 1 mapnum 12 mapname THUSTR_12 mapnameimage CWILV11 interpic INTERPIC music MAP12 normalexitmapnum 13 skytexture SKY2 partime 150 } mapsetup TNT.MAP13 { gamemission TNT episode 1 mapnum 13 mapname THUSTR_13 mapnameimage CWILV12 interpic INTERPIC music MAP13 normalexitmapnum 14 skytexture SKY2 partime 150 } mapsetup TNT.MAP14 { gamemission TNT episode 1 mapnum 14 mapname THUSTR_14 mapnameimage CWILV13 interpic INTERPIC music MAP14 normalexitmapnum 15 skytexture SKY2 partime 150 } mapsetup TNT.MAP15 { gamemission TNT episode 1 mapnum 15 mapname THUSTR_15 mapnameimage CWILV14 interpic INTERPIC music MAP15 normalexitmapnum 16 secretexitmapnum 31 skytexture SKY2 partime 210 finaleflags TEXT SECRETONLY NOENTERING endflat RROCK13 endtext T5TEXT endmusic Doom2_Victory } mapsetup TNT.MAP16 { gamemission TNT episode 1 mapnum 16 mapname THUSTR_16 mapnameimage CWILV15 interpic INTERPIC music MAP16 normalexitmapnum 17 skytexture SKY2 partime 150 } mapsetup TNT.MAP17 { gamemission TNT episode 1 mapnum 17 mapname THUSTR_17 mapnameimage CWILV16 interpic INTERPIC music MAP17 normalexitmapnum 18 skytexture SKY2 partime 420 } mapsetup TNT.MAP18 { gamemission TNT episode 1 mapnum 18 mapname THUSTR_18 mapnameimage CWILV17 interpic INTERPIC music MAP18 normalexitmapnum 19 skytexture SKY2 partime 150 } mapsetup TNT.MAP19 { gamemission TNT episode 1 mapnum 19 mapname THUSTR_19 mapnameimage CWILV18 interpic INTERPIC music MAP19 normalexitmapnum 20 skytexture SKY2 partime 210 } mapsetup TNT.MAP20 { gamemission TNT episode 1 mapnum 20 mapname THUSTR_20 mapnameimage CWILV19 interpic INTERPIC music MAP20 normalexitmapnum 21 skytexture SKY2 partime 150 finaleflags TEXT endflat RROCK07 endtext T3TEXT endmusic Doom2_Victory } mapsetup TNT.MAP21 { gamemission TNT episode 1 mapnum 21 mapname THUSTR_21 mapnameimage CWILV20 interpic INTERPIC music MAP21 normalexitmapnum 22 skytexture SKY3 partime 240 } mapsetup TNT.MAP22 { gamemission TNT episode 1 mapnum 22 mapname THUSTR_22 mapnameimage CWILV21 interpic INTERPIC music MAP22 normalexitmapnum 23 skytexture SKY3 partime 150 } mapsetup TNT.MAP23 { gamemission TNT episode 1 mapnum 23 mapname THUSTR_23 mapnameimage CWILV22 interpic INTERPIC music MAP23 normalexitmapnum 24 skytexture SKY3 partime 180 } mapsetup TNT.MAP24 { gamemission TNT episode 1 mapnum 24 mapname THUSTR_24 mapnameimage CWILV23 interpic INTERPIC music MAP24 normalexitmapnum 25 skytexture SKY3 partime 150 } mapsetup TNT.MAP25 { gamemission TNT episode 1 mapnum 25 mapname THUSTR_25 mapnameimage CWILV24 interpic INTERPIC music MAP25 normalexitmapnum 26 skytexture SKY3 partime 150 } mapsetup TNT.MAP26 { gamemission TNT episode 1 mapnum 26 mapname THUSTR_26 mapnameimage CWILV25 interpic INTERPIC music MAP26 normalexitmapnum 27 skytexture SKY3 partime 300 } mapsetup TNT.MAP27 { gamemission TNT episode 1 mapnum 27 mapname THUSTR_27 mapnameimage CWILV26 interpic INTERPIC music MAP27 normalexitmapnum 28 skytexture SKY3 partime 330 } mapsetup TNT.MAP28 { gamemission TNT episode 1 mapnum 28 mapname THUSTR_28 mapnameimage CWILV27 interpic INTERPIC music MAP28 normalexitmapnum 29 skytexture SKY3 partime 420 } mapsetup TNT.MAP29 { gamemission TNT episode 1 mapnum 29 mapname THUSTR_29 mapnameimage CWILV28 interpic INTERPIC music MAP29 normalexitmapnum 30 skytexture SKY3 partime 300 } mapsetup TNT.MAP30 { gamemission TNT episode 1 mapnum 30 mapname THUSTR_30 mapnameimage CWILV29 interpic INTERPIC music MAP30 normalexitmapnum 31 skytexture SKY3 partime 180 finaleflags TEXT CAST NOENTERING NONEXTLEVEL endflat RROCK17 endtext T4TEXT endmusic Doom2_Victory } mapsetup TNT.MAP31 { gamemission TNT episode 1 mapnum 31 mapname THUSTR_31 mapnameimage CWILV30 interpic INTERPIC music MAP31 normalexitmapnum 16 secretexitmapnum 32 skytexture SKY3 partime 120 finaleflags TEXT SECRETONLY endflat RROCK19 endtext T6TEXT endmusic Doom2_Victory } mapsetup TNT.MAP32 { gamemission TNT episode 1 mapnum 32 mapname THUSTR_32 mapnameimage CWILV31 interpic INTERPIC music MAP32 normalexitmapnum 16 skytexture SKY3 partime 30 } /* Intermission Animations (InterAnims) */ imagepatchlist wianims000 { wia00000 wia00001 wia00002 } interanim 000 { gamemission Doom episode 1 animtype ALWAYS period 11 patchlist wianims000 x 224 y 104 } imagepatchlist wianims001 { wia00100 wia00101 wia00102 } interanim 001 { gamemission Doom episode 1 animtype ALWAYS period 11 patchlist wianims001 x 184 y 160 } imagepatchlist wianims002 { wia00200 wia00201 wia00202 } interanim 002 { gamemission Doom episode 1 animtype ALWAYS period 11 patchlist wianims002 x 112 y 136 } imagepatchlist wianims003 { wia00300 wia00301 wia00302 } interanim 003 { gamemission Doom episode 1 animtype ALWAYS period 11 patchlist wianims003 x 72 y 112 } imagepatchlist wianims004 { wia00400 wia00401 wia00402 } interanim 004 { gamemission Doom episode 1 animtype ALWAYS period 11 patchlist wianims004 x 88 y 96 } imagepatchlist wianims005 { wia00500 wia00501 wia00502 } interanim 005 { gamemission Doom episode 1 animtype ALWAYS period 11 patchlist wianims005 x 64 y 48 } imagepatchlist wianims006 { wia00600 wia00601 wia00602 } interanim 006 { gamemission Doom episode 1 animtype ALWAYS period 11 patchlist wianims006 x 192 y 40 } imagepatchlist wianims007 { wia00700 wia00701 wia00702 } interanim 007 { gamemission Doom episode 1 animtype ALWAYS period 11 patchlist wianims007 x 136 y 16 } imagepatchlist wianims008 { wia00800 wia00801 wia00802 } interanim 008 { gamemission Doom episode 1 animtype ALWAYS period 11 patchlist wianims008 x 80 y 16 } imagepatchlist wianims009 { wia00900 wia00901 wia00902 } interanim 009 { gamemission Doom episode 1 animtype ALWAYS period 11 patchlist wianims009 x 64 y 24 } imagepatchlist wianims100 { wia10000 } interanim 100 { gamemission Doom episode 2 animtype LEVEL period 11 patchlist wianims100 x 128 y 136 mapnum 1 } imagepatchlist wianims101 { wia10100 } interanim 101 { gamemission Doom episode 2 animtype LEVEL period 11 patchlist wianims101 x 128 y 136 mapnum 2 } imagepatchlist wianims102 { wia10200 } interanim 102 { gamemission Doom episode 2 animtype LEVEL period 11 patchlist wianims102 x 128 y 136 mapnum 3 } imagepatchlist wianims103 { wia10300 } interanim 103 { gamemission Doom episode 2 animtype LEVEL period 11 patchlist wianims103 x 128 y 136 mapnum 4 } imagepatchlist wianims104 { wia10400 } interanim 104 { gamemission Doom episode 2 animtype LEVEL period 11 patchlist wianims104 x 128 y 136 mapnum 5 } imagepatchlist wianims105 { wia10500 } interanim 105 { gamemission Doom episode 2 animtype LEVEL period 11 patchlist wianims105 x 128 y 136 mapnum 6 } imagepatchlist wianims106 { wia10600 } interanim 106 { gamemission Doom episode 2 animtype LEVEL period 11 patchlist wianims106 x 128 y 136 mapnum 7 } imagepatchlist wianims107 { wia10700 wia10701 wia10702 } interanim 107 { gamemission Doom episode 2 animtype SINGLE period 11 patchlist wianims107 x 192 y 144 mapnum 8 } imagepatchlist wianims108 { // MONDO HACK! HACK ALERT! wia10400 } interanim 108 { gamemission Doom episode 2 animtype LEVEL period 11 patchlist wianims108 x 128 y 136 mapnum 8 } imagepatchlist wianims200 { wia20000 wia20001 wia20002 } interanim 200 { gamemission Doom episode 3 animtype ALWAYS period 11 patchlist wianims200 x 104 y 168 } imagepatchlist wianims201 { wia20100 wia20101 wia20102 } interanim 201 { gamemission Doom episode 3 animtype ALWAYS period 11 patchlist wianims201 x 40 y 136 } imagepatchlist wianims202 { wia20200 wia20201 wia20202 } interanim 202 { gamemission Doom episode 3 animtype ALWAYS period 11 patchlist wianims202 x 160 y 96 } imagepatchlist wianims203 { wia20300 wia20301 wia20302 } interanim 203 { gamemission Doom episode 3 animtype ALWAYS period 11 patchlist wianims203 x 104 y 80 } imagepatchlist wianims204 { wia20400 wia20401 wia20402 } interanim 204 { gamemission Doom episode 3 animtype ALWAYS period 11 patchlist wianims204 x 120 y 32 } imagepatchlist wianims205 { wia20500 wia20501 wia20502 } interanim 205 { gamemission Doom episode 3 animtype ALWAYS period 8 patchlist wianims205 x 40 y 0 } /* Intro Loops */ introloop shareware { title TITLEPIC demo demo1 page CREDIT demo demo2 page HELP2 demo demo3 } introloop registered { title TITLEPIC demo demo1 page CREDIT demo demo2 page CREDIT demo demo3 } introloop commercial { title TITLEPIC demo demo1 page CREDIT demo demo2 title TITLEPIC demo demo3 demo demo4 } introloop retail { title TITLEPIC demo demo1 page CREDIT demo demo2 page CREDIT demo demo3 demo demo4 } introloop indetermined { title TITLEPIC demo demo1 page CREDIT demo demo2 page HELP2 demo demo3 page CREDIT demo demo4 } 1 Quote Share this post Link to post
Graf Zahl Posted April 20, 2017 After I got it working with falling back to the original code as default, then it's time to think about streamlining. The one dangerous thing here is that a change misses some sync-critical timing and the code is full of that stuff, some very easy to miss. When I did the same thing for wi_stuff in ZDoom 12 years ago it was a lot easier, of course, because I could just toss out the convoluted garbage that was causing the problems. Here it's not that easy because there's a few very subtle differences, even between Doom1 and Doom2 that could easily get tossed out along if stuff got streamlined. 0 Quote Share this post Link to post
Death Egg Posted April 20, 2017 4 hours ago, fraggle said: I'm confused by the original premise of the question. Vanilla ("vanilla true" in this context?) usually just means "uses only the features that are in vanilla". If MAPINFO isn't in vanilla then it shouldn't be surprising that "vanilla" ports don't support it. So what exactly do you mean? You mention PrBoom+ and Crispy Doom; are you talking about some category of ports that is midway between "vanilla" and "limit removing" and slightly more liberal about accepting new features? Yes, I should have specified a bit more clearly. I didn't mean Chocolate Doom or other ports that try to be exactly like the original, more the limit removing and up. Though this does make me wonder about the possibility of a patch file in the vein of DEHACKED that would work for vanilla. Is that possible or do i just not know enough about how the source code works? 0 Quote Share this post Link to post
fraggle Posted April 21, 2017 3 hours ago, Death Egg said: Yes, I should have specified a bit more clearly. I didn't mean Chocolate Doom or other ports that try to be exactly like the original, more the limit removing and up. Though this does make me wonder about the possibility of a patch file in the vein of DEHACKED that would work for vanilla. Is that possible or do i just not know enough about how the source code works? There's only a very limited set of things you can change with Dehacked - you can't use it to do arbitrary changes to the executable. The most you might do is something that could convert certain bits of MAPINFO into dehacked patches (level names, for example), but it's probably not worth it. 0 Quote Share this post Link to post
Bauul Posted April 21, 2017 I think not worrying about targeting limit-removing makes sense. Limit removing wads are still essentially vanilla in principle, so I think everyone would expect them to follow the traditional level format. For Boom, MBF and upwards though, it makes perfect sense to try to include. 0 Quote Share this post Link to post
Jon Posted April 21, 2017 5 hours ago, fraggle said: There's only a very limited set of things you can change with Dehacked - you can't use it to do arbitrary changes to the executable. However, someone could write a more flexible doom-binary-patcher with a well defined input language that could do more than Dehacked. Not a great deal more though, there's only so much you can achieve with this approach. And if someone did write such a thing that worked with the vanilla exes... 0 Quote Share this post Link to post
printz Posted April 21, 2017 I will add this UMAPINFO to Eternity if PrBoom+ adopts it. If only GZDoom adds it, it will be of a lesser priority. On 19.04.2017 at 8:13 AM, Arctangent said: So, you're a strong supporter for 100% vanilla Doom 2 map sets being limited to only ZDoom and Eternity, due to using map progression that isn't the standard 32 maps with secret exits only being available in MAP15 and MAP31? By the time you make your mod require ZDoom or Eternity, you should be free to use their features. Enhance your maps the way you wanted but couldn't just with vanilla. You shouldn't limit the new features just to ?MAPINFO. 0 Quote Share this post Link to post
Graf Zahl Posted April 21, 2017 25 minutes ago, printz said: I will add this UMAPINFO to Eternity if PrBoom+ adopts it. If only GZDoom adds it, it will be of a lesser priority. If that was the case it would be pointless. Which is why I am actually developing the feature directly on the PrBoom source. We'll see where it goes. 0 Quote Share this post Link to post
Arctangent Posted April 21, 2017 8 hours ago, printz said: By the time you make your mod require ZDoom or Eternity, you should be free to use their features. Enhance your maps the way you wanted but couldn't just with vanilla. You shouldn't limit the new features just to ?MAPINFO. That doesn't really do much if the maps are already made. 0 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.