280 lines
8.4 KiB
Plaintext
280 lines
8.4 KiB
Plaintext
main()
|
|
{
|
|
// Added the IW3SP-MOD Credits and 'Hold [USE] for skip.' hint.
|
|
ReplaceFunc(maps\_credits::initCredits, ::initCredits);
|
|
}
|
|
|
|
initCredits()
|
|
{
|
|
level.linesize = 1.35;
|
|
level.headingsize = 1.75;
|
|
level.linelist = [];
|
|
|
|
maps\_utility::set_console_status();
|
|
skipCreditsInit();
|
|
initIW3SPMODCredits();
|
|
maps\_credits::initIWCredits();
|
|
maps\_credits::initActivisionCredits();
|
|
}
|
|
|
|
initIW3SPMODCredits()
|
|
{
|
|
if( getdvar( "mapname" ) == "ac130" )
|
|
{
|
|
//maps\_credits::addLeftTitle( &"IW3SP_MOD_LOC_CREDIT_IW3SPMOD_TITLE" );
|
|
maps\_credits::addLeftImage( "logo_iw3spmod", 256, 128, 3.875 ); // 3.1
|
|
maps\_credits::addSpaceSmall();
|
|
maps\_credits::addLeftTitle( &"IW3SP_MOD_LOC_CREDIT_MAIN_DEVELOPER_TITLE" );
|
|
maps\_credits::addLeftName( &"IW3SP_MOD_LOC_CREDIT_JERRY" );
|
|
maps\_credits::addSpace();
|
|
maps\_credits::addLeftTitle( &"IW3SP_MOD_LOC_CREDIT_SPECIAL_THANKS_TITLE" );
|
|
maps\_credits::addLeftName( &"IW3SP_MOD_LOC_CREDIT_NIKO" );
|
|
maps\_credits::addLeftName( &"IW3SP_MOD_LOC_CREDIT_XOXOR" );
|
|
maps\_credits::addLeftName( &"IW3SP_MOD_LOC_CREDIT_FED" );
|
|
maps\_credits::addLeftName( &"IW3SP_MOD_LOC_CREDIT_VLAD" );
|
|
maps\_credits::addLeftName( &"IW3SP_MOD_LOC_CREDIT_NUKEM9" );
|
|
maps\_credits::addLeftName( &"IW3SP_MOD_LOC_CREDIT_XLABS" );
|
|
maps\_credits::addLeftName( &"IW3SP_MOD_LOC_CREDIT_ALTERWARE" );
|
|
maps\_credits::addLeftName( &"IW3SP_MOD_LOC_CREDIT_COD4X" );
|
|
maps\_credits::addSpace();
|
|
maps\_credits::addSpace();
|
|
}
|
|
else
|
|
{
|
|
//maps\_credits::addCenterHeading( &"IW3SP_MOD_LOC_CREDIT_IW3SPMOD_TITLE" );
|
|
maps\_credits::addCenterImage( "logo_iw3spmod", 256, 128, 4.375 ); // 3.1
|
|
maps\_credits::addSpaceSmall();
|
|
maps\_credits::addCenterDual( &"IW3SP_MOD_LOC_CREDIT_MAIN_DEVELOPER_TITLE", &"IW3SP_MOD_LOC_CREDIT_JERRY" );
|
|
maps\_credits::addSpace();
|
|
maps\_credits::addCenterHeading( &"IW3SP_MOD_LOC_CREDIT_SPECIAL_THANKS_TITLE" );
|
|
maps\_credits::addCenterNameDouble( &"IW3SP_MOD_LOC_CREDIT_NIKO", &"IW3SP_MOD_LOC_CREDIT_XOXOR" );
|
|
maps\_credits::addCenterNameDouble( &"IW3SP_MOD_LOC_CREDIT_FED", &"IW3SP_MOD_LOC_CREDIT_VLAD" );
|
|
maps\_credits::addCenterNameDouble( &"IW3SP_MOD_LOC_CREDIT_XLABS", &"IW3SP_MOD_LOC_CREDIT_ALTERWARE" );
|
|
maps\_credits::addCenterNameDouble( &"IW3SP_MOD_LOC_CREDIT_NUKEM9", &"IW3SP_MOD_LOC_CREDIT_COD4X" );
|
|
maps\_credits::addSpace();
|
|
maps\_credits::addSpace();
|
|
}
|
|
}
|
|
|
|
skipCreditsInit()
|
|
{
|
|
level endon("skip_kill");
|
|
|
|
level.skipDone = false;
|
|
level.skipHoldUse = false;
|
|
level.skipPressedUseFirstTime = false;
|
|
level.skipFadeInTime = 0.5;
|
|
level.skipFadeOutTime = 0.5;
|
|
level.skipBarWidth = 128;
|
|
level.skipBarHeight = 2;
|
|
|
|
level.skipText = newHudElem();
|
|
level.skipText.alignX = "right";
|
|
level.skipText.alignY = "bottom";
|
|
level.skipText.fontScale = 1.25;
|
|
level.skipText.x = -10;
|
|
level.skipText.y = -25;
|
|
level.skipText.horzAlign = "right";
|
|
level.skipText.vertAlign = "bottom";
|
|
level.skipText.foreground = true;
|
|
level.skipText settext ( &"IW3SP_MOD_LOC_CREDIT_HOLD_USE_TO_SKIP" );
|
|
level.skipText.alpha = 0.0;
|
|
|
|
level.skipBarProgress = newHudElem();
|
|
level.skipBarProgress.sort = 1;
|
|
level.skipBarProgress.alignX = "left";
|
|
level.skipBarProgress.alignY = "bottom";
|
|
level.skipBarProgress.x = -138;
|
|
level.skipBarProgress.y = -20;
|
|
level.skipBarProgress.horzAlign = "right";
|
|
level.skipBarProgress.vertAlign = "bottom";
|
|
level.skipBarProgress.width = level.skipBarWidth;
|
|
level.skipBarProgress.height = level.skipBarHeight;
|
|
level.skipBarProgress.foreground = true;
|
|
level.skipBarProgress.alpha = 1.0;
|
|
level.skipBarProgress.color = ( 1.0, 1.0, 1.0 );
|
|
level.skipBarProgress setShader( "white", level.skipBarProgress.width, level.skipBarProgress.height );
|
|
|
|
level.skipBarBackground = newHudElem();
|
|
level.skipBarBackground.sort = -2;
|
|
level.skipBarBackground.alignX = "right";
|
|
level.skipBarBackground.alignY = "bottom";
|
|
level.skipBarBackground.x = -10;
|
|
level.skipBarBackground.y = -20;
|
|
level.skipBarBackground.width = level.skipBarWidth;
|
|
level.skipBarBackground.height = level.skipBarHeight;
|
|
level.skipBarBackground.horzAlign = "right";
|
|
level.skipBarBackground.vertAlign = "bottom";
|
|
level.skipBarBackground.foreground = true;
|
|
level.skipBarBackground.alpha = 1.0;
|
|
level.skipBarBackground.color = ( 0.2, 0.2, 0.2 );
|
|
level.skipBarBackground setShader( "black", level.skipBarBackground.width, level.skipBarBackground.height );
|
|
|
|
// Loop checks
|
|
thread skipFadeInCheck();
|
|
thread checkSkipButton();
|
|
level.skipBarProgress thread skipBarFill();
|
|
|
|
level.skipText thread fadeInElement();
|
|
level.skipBarBackground thread fadeInElement();
|
|
level.skipBarProgress thread fadeInElement();
|
|
level.skipText thread fadeOutElement( 7, true );
|
|
level.skipBarBackground thread fadeOutElement( 7, true );
|
|
level.skipBarProgress thread fadeOutElement( 7, true );
|
|
}
|
|
|
|
checkSkipButton()
|
|
{
|
|
level endon("skip_kill");
|
|
|
|
while( true )
|
|
{
|
|
while( !level.player useButtonPressed() )
|
|
wait 0.05;
|
|
level.skipHoldUse = true;
|
|
if(!level.skipPressedUseFirstTime)
|
|
{
|
|
level.skipPressedUseFirstTime = true;
|
|
level notify( "kill_function" );
|
|
}
|
|
|
|
while( level.player useButtonPressed() )
|
|
wait 0.05;
|
|
level.skipHoldUse = false;
|
|
}
|
|
}
|
|
|
|
skipFadeInCheck()
|
|
{
|
|
level endon("skip_kill");
|
|
|
|
while( true )
|
|
{
|
|
if(level.skipPressedUseFirstTime)
|
|
{
|
|
if( level.skipHoldUse )
|
|
{
|
|
level.skipText thread fadeInElement(0.2);
|
|
level.skipBarBackground thread fadeInElement(0.2);
|
|
level.skipBarProgress thread fadeInElement(0.2);
|
|
}
|
|
else
|
|
{
|
|
level.skipText thread fadeOutElement();
|
|
level.skipBarBackground thread fadeOutElement();
|
|
level.skipBarProgress thread fadeOutElement();
|
|
}
|
|
}
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
skipBarFill()
|
|
{
|
|
level notify("skip_timer_stopped");
|
|
|
|
interval = .05;
|
|
timesofar = 0;
|
|
planttime = 3;
|
|
barFrac = 0;
|
|
|
|
while ( true )
|
|
{
|
|
while( level.skipHoldUse )
|
|
{
|
|
timesofar += interval;
|
|
barFrac = timesofar/planttime;
|
|
if(barFrac > 1)
|
|
barFrac = 1;
|
|
if(barFrac < 0)
|
|
barFrac = 0;
|
|
barWidth = int( level.skipBarBackground.width * barFrac );
|
|
self setShader( "white", barWidth, self.height );
|
|
if(timesofar >= planttime)
|
|
{
|
|
level.skipDone = true;
|
|
break;
|
|
}
|
|
wait (interval);
|
|
}
|
|
|
|
while( !level.skipHoldUse )
|
|
{
|
|
timesofar = 0;
|
|
self setShader( "white", 1, level.skipBarProgress.height );
|
|
self.alpha = 0.0;
|
|
if(level.skipDone)
|
|
break;
|
|
wait (interval);
|
|
}
|
|
|
|
if(level.skipDone)
|
|
{
|
|
level.skipText thread fadeOutElement();
|
|
level.skipBarBackground thread fadeOutElement();
|
|
self thread fadeOutElement();
|
|
level notify( "skip_timer_stopped" );
|
|
level notify( "skip_kill" );
|
|
if( getdvar( "mapname" ) == "ac130" )
|
|
thread credits_skipped( true );
|
|
else
|
|
thread credits_skipped();
|
|
break;
|
|
}
|
|
|
|
wait (interval);
|
|
}
|
|
}
|
|
|
|
credits_skipped( from_level )
|
|
{
|
|
duration = 1.25;
|
|
|
|
// Fade screen
|
|
overlay = newHudElem();
|
|
overlay.x = 0;
|
|
overlay.y = 0;
|
|
overlay setshader( "black", 640, 480 );
|
|
overlay.alignX = "left";
|
|
overlay.alignY = "top";
|
|
overlay.horzAlign = "fullscreen";
|
|
overlay.vertAlign = "fullscreen";
|
|
overlay.alpha = 0;
|
|
overlay.sort = 1;
|
|
|
|
overlay fadeOverTime( duration );
|
|
overlay.alpha = 1;
|
|
|
|
if(isDefined(from_level))
|
|
{
|
|
if ( isdefined( level.credits_frommenu ) )
|
|
changelevel( "" );
|
|
else
|
|
maps\_endmission::credits_end();
|
|
}
|
|
else
|
|
changelevel( "" );
|
|
}
|
|
|
|
fadeInElement( wait_delay )
|
|
{
|
|
if(isDefined(wait_delay))
|
|
wait (wait_delay);
|
|
else
|
|
wait 0.5;
|
|
self fadeOverTime(level.skipFadeOutTime);
|
|
self.alpha = 1.0;
|
|
}
|
|
|
|
fadeOutElement( wait_delay, firstTime )
|
|
{
|
|
if(isDefined(firstTime))
|
|
level endon ("kill_function");
|
|
|
|
if(isDefined(wait_delay))
|
|
wait (wait_delay);
|
|
else
|
|
wait 0.5;
|
|
self fadeOverTime(level.skipFadeOutTime);
|
|
self.alpha = 0.0;
|
|
} |