- For Tutorials specifically
- void Dialogue_AutoDismiss(void)
- Dismisses the current dialogue (including from other threads).
- str CheckTutorialChallenge(void)
- Returns special values depending on state relevant to the Tutorial Challenge.
- Returns a blank string in netgames, or if none of the following are true.
- Returns "Active" if the skip is in progress.
- Returns "Failed" if the skip was just failed.
- Returns "Locked" if not available with this gamedata.
- Other tiny check functions
- bool PositionStart(void)
- Returns true if leveltime < starttime.
- bool FreePlay(void)
- Returns true if in Free Play.
If some dialogue needs to be never-missable, that's the mapper's responsibility - but now they won't get randomly interleaved if multiple are activated just by regular free driving, which was the worst kind of default
A first pass in attempts to fix crashes when ACS causes map changes.
Frustratingly still got a crash, but I think this is definitely the right foundation to work with.
Returns bot status of activating player
ZDoom had a bot status function that could be mimiced... but it used a passed player number, when all we need to check for is the activator.
To this end, has a different name (the ZDoom version was "PlayerIsBot")
- If netgame or no Spray Can has been grabbed on this map, return 0
- If all Spray Cans have been grabbed in other maps, return "_Completed"
- Otherwise, return the name for the Spray Can color attached to this map
- Takes player argument and only appears on the screen if
they're a display player.
- Uses 4P font when in splitscreen.
- Uses 1P font if not in splitscreen, or player argument
is NULL -- message to everyone.
- Interrupt argument controls whether the message should
overwrite another message that's already playing.
- Global and player specific messages are considered
separately.
SRB2 uses a LOT of mapthing args compared to Hexen (which has none) and ZDoom (which only has them on objects that will never ever activate scripts). So we really badly needed to separate the two if we want attaching scripts to things to be useful.
- Save retry condition in G_BeginLevelExit
- Apply condition in G_FinishExitLevel
Preparation for ACS level end scripts, since the exit
condition will need be known when the countdown starts,
not when it ends (that'd be too late to do anything in the
level).
- ThingCount has an extra argument for sector tag.
- CountEnemies and CountPushables have an extra argument for thing tag.
- Sector tag 0 for CountEnemies and CountPushables now redirects to activator sector.