// // F_Ticker // void F_Ticker (void) { // denis - do this serverside only // check for skipping // [RH] Non-commercial can be skipped now, too if (serverside && finalecount > 50 && finalestage != 1) { // go on to the next level // [RH] or just reveal the entire message if we're still ticking it Players::iterator it = players.begin(); for (;it != players.end();++it) if (it->cmd.buttons) break; if (it != players.end()) { /*if (finalecount < (signed)(strlen (finaletext)*TEXTSPEED)) { finalecount = strlen (finaletext)*TEXTSPEED; } else {*/ if (!strncmp (level.nextmap, "EndGame", 7) || (gamemode == retail_chex && !strncmp (level.nextmap, "E1M6", 4))) // [ML] Chex mode: game is over { // after E1M5 if (level.nextmap[7] == 'C') { F_StartCast (); } else { finalecount = 0; finalestage = 1; wipegamestate = GS_FORCEWIPE; if (level.nextmap[7] == '3') S_StartMusic ("d_bunny"); } } else { gameaction = ga_worlddone; } //} } } // advance animation finalecount++; if (finalestage == 2) { F_CastTicker (); return; } }
// // F_Ticker // void F_Ticker (void) { int i; // check for skipping if ( (gamemode == GAME_MODE_COMMERCIAL) && ( finalecount > 50) ) { // go on to the next level for (i = 0 ; i < MAXPLAYERS ; i++) if (players[i].cmd.buttons) { break; } if (i < MAXPLAYERS) { if (gamemap == 30) { F_StartCast (); } else { gameaction = ga_worlddone; } } } // advance animation finalecount++; if (finalestage == 2) { F_CastTicker (); return; } if ( gamemode == GAME_MODE_COMMERCIAL) { return; } if (!finalestage && finalecount > strlen (finaletext)*TEXTSPEED + TEXTWAIT) { finalecount = 0; finalestage = 1; wipegamestate = -1; // force a wipe if (gameepisode == 3) { S_StartMusic (mus_bunny); } } }
// // F_Ticker // void F_Ticker (void) { size_t i; // check for skipping if ( (gamemode == commercial) && ( finalecount > 50) ) { // go on to the next level for (i=0 ; i<MAXPLAYERS ; i++) if (players[i].cmd.buttons) break; if (i < MAXPLAYERS) { if (gamemission == pack_nerve && singleplayer && gamemap == 8) F_StartCast (); else if (gamemission == pack_master && singleplayer && (gamemap == 20 || gamemap == 21)) F_StartCast (); else if (gamemap == 30) F_StartCast (); else gameaction = ga_worlddone; } } // advance animation finalecount++; if (finalestage == F_STAGE_CAST) { F_CastTicker (); return; } if ( gamemode == commercial) return; if (finalestage == F_STAGE_TEXT && finalecount>strlen (finaletext)*TEXTSPEED + TEXTWAIT) { finalecount = 0; finalestage = F_STAGE_ARTSCREEN; wipegamestate = -1; // force a wipe if (gameepisode == 3) S_StartMusic (mus_bunny); } }
OVERLAY void F_Ticker(void) { int i; if (!demo_compatibility) WI_checkForAccelerate(); // killough 3/28/98: check for acceleration else if (gamemode == commercial && finalecount > 50) // check for skipping for (i=0; i<MAXPLAYERS; i++) if (players[i].cmd.buttons) goto next_level; // go on to the next level // advance animation finalecount++; if (finalestage == 2) F_CastTicker(); if (!finalestage) { fixed_t speed, endcount; speed = demo_compatibility ? TEXTSPEED : Get_TextSpeed(); endcount = FixedMul(strlen(finaletext) * FRACUNIT, speed); endcount += (midstage ? NEWTEXTWAIT : TEXTWAIT); /* killough 2/28/98: changed to allow acceleration */ if (finalecount > endcount || (midstage && acceleratestage)) { if (gamemode != commercial) // Doom 1 / Ultimate Doom episode end { // with enough time, it's automatic finalecount = 0; finalestage = 1; wipegamestate = (gamestate_t)-1; // force a wipe if (gameepisode == 3) S_StartMusic(mus_bunny); } else // you must press a button to continue in Doom 2 if (!demo_compatibility && midstage) { next_level: if (gamemap == 30) F_StartCast(); // cast of Doom 2 characters else gameaction = ga_worlddone; // next level, e.g. MAP07 } } } }
// // F_Ticker // void F_Ticker (void) { int i; // check for skipping if ( (gamemode == commercial) && ( finalecount > 50) ) { // go on to the next level for (i=0 ; i<MAXPLAYERS ; i++) if (players[i].cmd.buttons) break; if (i < MAXPLAYERS) { if (gamemap == 30) F_StartCast (); else gameaction = ga_worlddone; } } // advance animation finalecount++; if (finalestage == 2) { F_CastTicker (); return; } if ( gamemode == commercial) return; if (!finalestage && finalecount>strlen (finaletext)*TEXTSPEED + TEXTWAIT) { finalecount = 0; finalestage = 1; wipegamestate = -1; // force a wipe #ifdef USE_SOUND if (gameepisode == 3) S_StartMusic (mus_bunny); #endif } }
// // F_Ticker // // [STRIFE] Modifications for new finales // haleyjd 09/13/10: Calls F_DoSlideShow // void F_Ticker (void) { size_t i; // check for skipping if (finalecount > 50) // [STRIFE] No commercial check { // go on to the next level for (i=0 ; i<MAXPLAYERS ; i++) if (players[i].cmd.buttons) break; if (i < MAXPLAYERS) finalecount = slideshow_tics; // [STRIFE] } // advance animation finalecount++; if(!classicmode && finalestage == F_STAGE_ARTSCREEN) return; // [SVE]: nothing else to do in artscreen if(finalestage == F_STAGE_CAST) F_CastTicker (); else if(finalecount > slideshow_tics) // [STRIFE] Advance slideshow F_DoSlideShow(); // [STRIFE]: Rest is unused /* if ( gamemode == commercial) return; if (finalestage == F_STAGE_TEXT && finalecount>strlen (finaletext)*TEXTSPEED + TEXTWAIT) { finalecount = 0; finalestage = F_STAGE_ARTSCREEN; wipegamestate = -1; // force a wipe if (gameepisode == 3) S_StartMusic (mus_logo); } */ }
// // F_Ticker // void F_Ticker(void) { if (menuactive || paused || consoleactive) return; WI_checkForAccelerate(); // advance animation finalecount++; if (finalestage == F_STAGE_CAST) F_CastTicker(); if (finalestage == F_STAGE_TEXT) { if (finalecount > FixedMul(strlen(finaletext) * FRACUNIT, TextSpeed()) + (midstage ? NEWTEXTWAIT : TEXTWAIT) || (midstage && acceleratestage)) { if (gamemode != commercial) { finalecount = 0; finalestage = 1; wipegamestate = GS_NONE; // force a wipe if (gameepisode == 3) S_StartMusic(mus_bunny); } else if (midstage) { if (gamemap == 30 || (gamemission == pack_nerve && gamemap == 8)) F_StartCast(); else gameaction = ga_worlddone; } } } }
// // F_Ticker // void F_Ticker (void) { int i; // check for skipping if ( (::g->gamemode == commercial) && ( ::g->finalecount > 50) ) { // go on to the next level for (i=0 ; i<MAXPLAYERS ; i++) if (::g->players[i].cmd.buttons) break; if ( finaleButtonPressed || i < MAXPLAYERS) { bool castStarted = false; if( ::g->gamemission == doom2 || ::g->gamemission == pack_plut || ::g->gamemission == pack_tnt ) { if (::g->gamemap == 30) { F_StartCast (); castStarted = true; } } else if( ::g->gamemission == pack_master ) { if( :: g->gamemap == 21 ) { F_StartCast (); castStarted = true; } } else if( ::g->gamemission == pack_nerve ) { if( :: g->gamemap == 8 ) { F_StartCast (); castStarted = true; } } if( castStarted == false ) { ::g->gameaction = ga_worlddone; } } } bool SkipTheText = finaleButtonPressed; // advance animation ::g->finalecount++; finaleButtonPressed = false; if (::g->finalestage == 2) { F_CastTicker (); return; } if ( ::g->gamemode == commercial) { startButtonPressed = false; return; } if( SkipTheText && ( ::g->finalecount > 50) ) { ::g->finalecount = static_cast<int>(strlen(finaletext)) * TEXTSPEED + TEXTWAIT; } if (!::g->finalestage && ::g->finalecount > static_cast<int>(strlen(finaletext)) * TEXTSPEED + TEXTWAIT) { ::g->finalecount = 0; ::g->finalestage = 1; ::g->wipegamestate = (gamestate_t)-1; // force a wipe if (::g->gameepisode == 3) S_StartMusic (mus_bunny); } startButtonPressed = false; }