Intermission screen options

Moderator: GZDoom Developers

User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48520
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Intermission screen options

Post by Graf Zahl »

Even though almost everything else regarding level progression can be customized it is rather strange that there isn't any flexibility in this particular screen. The music being played is determined by the game as is the background. Even Legacy can configure this (check out Nimrod!)

So how about adding 2 options for each map to set an optional picture and music for this screen which is displayed after a map ends? (or even better: Make it so that like in Heretic you can have different pictures for the 'finished' and 'entering' screen.)


EDIT

I finally managed to test it all so here it is:

Features:

-simple animations on the intermission screen
-special overlay pictures when entering or leaving specific levels or when travelling between 2 specified levels.
-User definable 'You are here' cursor
-'SUCKS' can be switched of completely (God how I hate this nonsense. ;))
-per level intermission background picture and music settable in MAPINFO. 'Entering' and 'Finished' picture do not need to be the same. If a flat is specified it will be tiled across the screen.

Fixes:

-handles replaced fonts better than before
-fully functional in all games, including Hexen and Strife!
-NOINTERMISSION can be taken off ExM8 now without screwing up the screen
-Graphics are scaled to the entire screen if they are too small. The old code assumed 320x200 and didn't scale small pics properly (Dissolution had such an intermission picture.)

Present but not yet functional:

-total time per game (I didn't want to mess with the other source files too much right now. This can easily be added later in a few minutes.)

Since most of the changes apply to wi_stuff.cpp and wi_stuff.h I just list the rest here. It isn't much.

In g_level.h add to the level_info_s struct:

Code: Select all

	char		enterpic[9];
	char		exitpic[9];
	char		intermusic[9];
In g_level.cpp add to the MapInfoMapLevel array:

Code: Select all

	"interpic",
	"exitpic",
	"enterpic",
	"intermusic",
and to the MapHandlers array:

Code: Select all

	{ MITYPE_LUMPNAME,	lioffset(exitpic), 0 },
	{ MITYPE_LUMPNAME,	lioffset(exitpic), 0 },
	{ MITYPE_LUMPNAME,	lioffset(enterpic), 0 },
	{ MITYPE_LUMPNAME,	lioffset(intermusic), 0 },
and replace wi_stuff.* with these. That's all, except the sucktime option has to be added again to wi_stuff.cpp.

EDIT: Forgot to add the script lumps for Doom1 and Heretic. See the second attachment.


Another edit:

There was still a bug. The enter pic was taken from the incorrect level. Fixed.

EDIT again: There was a tiny but unfortunately fatal bug in there.
Last edited by Graf Zahl on Tue May 31, 2005 1:49 pm, edited 6 times in total.
User avatar
wario
Posts: 228
Joined: Fri Oct 01, 2004 7:53 am
Location: netherlands

Post by wario »

well it is possible do this with zdoom but on a VERY HARD way tough :cry:
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48520
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

Hacks are never an acceptable solution, especially if you consider how little coding would be necessary for this...
User avatar
Enjay
 
 
Posts: 26441
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland

Post by Enjay »

Yes, yes, yes. Most definitely. Proper alternative intermission pictures and music by map are two things I'd really like to see.

16
User avatar
David Ferstat
Posts: 1113
Joined: Wed Jul 16, 2003 8:53 am
Location: Perth, Western Australia

Post by David Ferstat »

Thirded. From my point of view (close to total ignorance) it seems like a near-trivial thing to code.
User avatar
sirjuddington
Posts: 1019
Joined: Wed Jul 16, 2003 4:47 am
Location: Australia

Post by sirjuddington »

How about camera intermissions too, like Quake? ;) Thats something I've wanted to do in zdoom for a long time.
User avatar
Belial
Posts: 1616
Joined: Wed Feb 09, 2005 3:09 pm

Post by Belial »

Yay for that. And yay for all the stuff before, too. Talk about an enhancement!
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48520
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

SlayeR wrote:How about camera intermissions too, like Quake? ;) Thats something I've wanted to do in zdoom for a long time.

Wait for KDIZD! ;)

With ACS you can do it right now. All the necessary status functions are there.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48520
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

Since it is related: Who can tell me what is wrong with this picture:

Image


:mrgreen:
User avatar
jallamann
Posts: 2271
Joined: Mon May 24, 2004 8:25 am
Location: Ålesund, Norway

Post by jallamann »

way too low fps? :P
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48520
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

No, that's just because I had some time consuming background task running in parallel and doesn't count. ;)
User avatar
wildweasel
Moderator Team Lead
Posts: 21584
Joined: Tue Jul 15, 2003 7:33 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Win10 22H2, Win11 22H2, macOS 11.7
Graphics Processor: nVidia with Vulkan support

Post by wildweasel »

The font, quite obviously. I guess you've already written the code yourself, or else replaced Heretic's font.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48520
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

wildweasel wrote: I guess you've already written the code yourself

Good guess!

After looking through the whole intermission code I was horrified. There were bugs galore, it was inflexible to the extreme, littered with utterly crude hacks and didn't work for Strife at all.

So to clean it up I first had to get rid of all the special cases and replaced them with a simple script format for the Doom1 and Heretic intermissions. That alone helped to get rid of the biggest problems and what you see here is the intermission script for Heretic Episode 1 used in Doom. There are still some issues to clean up there (most importantly that the time display is totally broken for custom digits.) but when I'm done I'll post it here.

Of course this also addresses my original suggestion.
User avatar
Enjay
 
 
Posts: 26441
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland

Post by Enjay »

Graf Zahl wrote:Of course this also addresses my original suggestion.
Let's hope it gets incorporated then. :thumb:

14
User avatar
TheDarkArchon
Posts: 7656
Joined: Sat Aug 07, 2004 5:14 am
Location: Some cold place

Post by TheDarkArchon »

Praise da German programmer :rock: :rock:

Return to “Closed Feature Suggestions [GZDoom]”