Jump to content
  • 0

Is it possible for the starting text screen to play before the first ever level?


DannyMan

Question

7 answers to this question

Recommended Posts

  • 0

If you mean the standard intermission text, even on ZDoom it isn't easily possible AFAIK: the intermission text is triggered at the completion of a level rather than the start.

 

Work-arounds I have seen include creating a Map01 that literally ends the moment it starts and has no intermission screen (which is a ZMapinfo flag) and then have the text display after that (so from the player's perspective it goes straight to the intermission), or use a fullscreen HudMessage script to display the text you want (that's how I did it in Elementalism).

 

UMapinfo implementation in ports may have found a way around it, but I'm not familiar enough with it to comment.

Share this post


Link to post
  • 2

MAPINFO has a parameter to display text on entering the level. It will probably work. But it's zDoom only feature. There's probably more options in zDoom scripting.

I don't know if other ports would allow such a functionality.

 

Share this post


Link to post
  • 1

if you're targeting zdoom/gzdoom i would just not use the intermission text at all; take control (minus use) away from the player in an all black room and print the text to screen instead using hudmessage or similar. just start the player in front of a usable line that will either end the map or teleport them to another part of the map so the level can start proper before returning control. this will offer you far more flexibility than the built-in text screens as well. so let's say:

#include "zcommon.acs"

//we're going to assume the player is in a pitch black room in front of a usable line which will call script 2 when used.

script 1 ENTER
{	
	SetMusic ("IntroMusic",0); // start your intermission music
	SetPlayerProperty(0,1,PROP_TOTALLYFROZEN); // the player cannot move, but can still shoot
	SetFont("SMALLFNT"); // choose our font to print with
	HudMessage(s:"HERE IS DA TEXT.....\nLINE BREAK FOR DA EXAMPLE."; HUDMSG_TYPEON|HUDMSG_LOG|HUDMSG_COLORSTRING|HUDMSG_LAYER_OVERHUD, 1, CR_WHITE, 0.5, 0.5, 999.0, 0.1); // this will make the text appear similar to how it does in intermission screens, using HUDMSG_TYPEON to do the typewriter effect and the 0.1 at the end for the amount of time each letter will take. we are also printing this to HudMessage ID number 1. see https://zdoom.org/wiki/HudMessage for info. the 999 is how long we want to hold the text for. since we aren't using HUDMSG_PLAIN we have to give it a dummy big number to stay up for a long time.
	Delay(35*10); // this is how long we want to wait before continuing automatically. we could remove it a well and have the user decide when to move on.	
	ACS_Execute(2,0); // this runs the next script automatically after 10 seconds (the previous delay) - if you remove the delay, you remove this too.
}

script 2 void
{
	ACS_Terminate(1,0); // kill the previous script just in case it's still running (not necessary if we don't have the delay + script call in the previous script)
	SetMusic ("MapMusic",0); // start the main music
	SetPlayerProperty(0,0,PROP_TOTALLYFROZEN); // the player can move again! freedom!
	HudMessage(s:""; 1,CR_WHITE,0,0,0,0); // this clears the previous hud message by printing nothing to ID number 1.
	Teleport_NoFog(1,1,1,0); // this teleports the player silently to wherever your thing is. you can also use the regular teleport with the fog effect or whatever.
}

sorry if some of this is wrong or whatever, this is mostly off the dome and i don't have the time to put together an actual example map. it should hopefully help though, maybe?

Share this post


Link to post
  • 0

you can have map01 be a black room with a shoot to start texture that takes you to map02 and have your text screen on the exiting entryway texture 

 

 : /

Edited by gwain

Share this post


Link to post
  • 0
11 minutes ago, DannyMan said:

I can't have things start abruptly

Wouldn't it already be abrupt, showing the text screen immediately after a new game?

My suggestion is that you make map01 with voodoo conveyor that ends the level. Or a dehacked thing that could do the same even faster (instant a_braindeath).

Share this post


Link to post
  • 0
On 4/6/2022 at 2:39 PM, ViolentBeetle said:

MAPINFO has a parameter to display text on entering the level. It will probably work.

"Entertext" will actually not work on the first level, it'll only work if you use it on a map that you are entering from another map.

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
Answer this question...

×   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...