[Done] Intermission screen options

Moderator: GZDoom Developers

Intermission screen options

Postby Graf Zahl » Mon May 02, 2005 12:42 pm

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 allExpand view
   char      enterpic[9];
   char      exitpic[9];
   char      intermusic[9];


In g_level.cpp add to the MapInfoMapLevel array:
Code: Select allExpand view
   "interpic",
   "exitpic",
   "enterpic",
   "intermusic",


and to the MapHandlers array:

Code: Select allExpand view
   { 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 2:49 pm, edited 6 times in total.
User avatar
Graf Zahl
Lead GZDoom Developer
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Postby wario » Mon May 02, 2005 12:57 pm

well it is possible do this with zdoom but on a VERY HARD way tough :cry:
User avatar
wario
uhh.....
 
Joined: 01 Oct 2004
Location: netherlands

Postby Graf Zahl » Mon May 02, 2005 12:59 pm

Hacks are never an acceptable solution, especially if you consider how little coding would be necessary for this...
User avatar
Graf Zahl
Lead GZDoom Developer
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Postby Enjay » Mon May 02, 2005 5:31 pm

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
Enjay
Everyone is a moon, and has a dark side which he never shows to anybody. Twain
 
 
 
Joined: 15 Jul 2003
Location: Scotland

Postby David Ferstat » Mon May 02, 2005 7:10 pm

Thirded. From my point of view (close to total ignorance) it seems like a near-trivial thing to code.
User avatar
David Ferstat
Oh dear, I think you'll find reality is on the blink again.
 
Joined: 16 Jul 2003
Location: Perth, Western Australia

Postby sirjuddington » Mon May 02, 2005 7:41 pm

How about camera intermissions too, like Quake? ;) Thats something I've wanted to do in zdoom for a long time.
User avatar
sirjuddington
 
Joined: 16 Jul 2003
Location: Australia
Discord: sirjuddington#7496
Github ID: sirjuddington

Postby Belial » Mon May 02, 2005 7:44 pm

Yay for that. And yay for all the stuff before, too. Talk about an enhancement!
User avatar
Belial
MC™
 
Joined: 09 Feb 2005

Postby Graf Zahl » Mon May 02, 2005 7:55 pm

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 Developer
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Postby Graf Zahl » Wed May 04, 2005 12:59 pm

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

Image


:mrgreen:
User avatar
Graf Zahl
Lead GZDoom Developer
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Postby jallamann » Wed May 04, 2005 1:04 pm

way too low fps? :P
User avatar
jallamann
isn't very active on the forums at all
 
Joined: 24 May 2004
Location: Ålesund, Norway

Postby Graf Zahl » Wed May 04, 2005 1:07 pm

No, that's just because I had some time consuming background task running in parallel and doesn't count. ;)
User avatar
Graf Zahl
Lead GZDoom Developer
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Postby wildweasel » Wed May 04, 2005 1:18 pm

The font, quite obviously. I guess you've already written the code yourself, or else replaced Heretic's font.
User avatar
wildweasel
change o' pace.
Moderator Team Lead
 
Joined: 15 Jul 2003

Postby Graf Zahl » Wed May 04, 2005 1:30 pm

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
Graf Zahl
Lead GZDoom Developer
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Postby Enjay » Wed May 04, 2005 1:42 pm

Graf Zahl wrote:Of course this also addresses my original suggestion.


Let's hope it gets incorporated then. :thumb:

14
User avatar
Enjay
Everyone is a moon, and has a dark side which he never shows to anybody. Twain
 
 
 
Joined: 15 Jul 2003
Location: Scotland

Postby TheDarkArchon » Wed May 04, 2005 1:50 pm

Praise da German programmer :rock: :rock:
User avatar
TheDarkArchon
OUT!
 
Joined: 07 Aug 2004
Location: Some cold place

Next

Return to Closed Feature Suggestions

Who is online

Users browsing this forum: MSN [Bot] and 3 guests