Cogito, ergo sum

UE1:NBSPBadge (Class)

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search

Purpose[edit]

This class is used to display a logo.

Variables[edit]

Discussion[edit]

Possible improvements[edit]

Complete source code[edit]

//=============================================================================
// NBSPBadge ==> NoBullShitPlus v1.09
//=============================================================================
 
class NBSPBadge extends Mutator;
 
#exec Texture Import File=../NBSP_Forced109/Classes/NoBullShitPlus.pcx Name=NBSPShield Mips=Off
 
enum EDrawState {
	DRAW_BLANK,
	DRAW_FADE_IN,
	DRAW_DISPLAY,
	DRAW_FADE_OUT,
	DRAW_DONE
};
 
var private string VersionStr;			// Holds the version code from VUC++
var PlayerPawn PP;
var private bool bDrawSplash;
var private EDrawState DrawState;
var private float DrawTime;
var private float DrawTick;
var private bool bInitialized;
var private string zzMsg;
var private float WaitTime, FadeInTime, AliveTime, FadeOutTime;
 
simulated function PostRender (private Canvas Canvas)
{
	Super.PostRender(Canvas);
 
	//Do Mutator				
	if (( PP != None ) && 
		( PP.PlayerReplicationInfo != None ) &&
		( DrawState != DRAW_DONE ))
	{
		if (  !bDrawSplash )
		{
			bDrawSplash=True;
			DrawState=DRAW_BLANK;
			DrawTick=0.06;
			SetTimer(DrawTick,True);
		}
		else
		{
			DrawSplash(Canvas);
		}
	}
 
	if ( NextMutator != None )
		NextMutator.PostRender(Canvas);
}
 
simulated function DrawSplash (private Canvas Canvas)
{
	local Font PreviousFont;
	local bool PreviousCenter;
	local Color PreviousColor;
	local byte PreviousStyle;
	local float zzX,zzY;
 
	if ( DrawState != DRAW_BLANK )
	{
		PreviousCenter=Canvas.bCenter;
		PreviousColor=Canvas.DrawColor;
		PreviousFont=Canvas.Font;
		PreviousStyle=Canvas.Style;
		Canvas.Reset();
		Canvas.SetPos(12.00,80.00);
		zzX = 10; // Canvas.ClipX / 2;
		zzY = Canvas.ClipY - 128;
 
		switch (DrawState)
		{
			case DRAW_FADE_IN:
				Canvas.Style=ERenderStyle.STY_Translucent;
				Canvas.DrawColor = ChallengeHud(PP.myHUD).WhiteColor * DrawTime;
				break;
 
			case DRAW_DISPLAY:
				Canvas.Style=ERenderStyle.STY_Translucent;
				Canvas.DrawColor = ChallengeHud(PP.myHUD).WhiteColor;	
				break;
 
			case DRAW_FADE_OUT:
				Canvas.Style=ERenderStyle.STY_Translucent;
				Canvas.DrawColor = ChallengeHud(PP.myHUD).WhiteColor * (FadeOutTime - DrawTime);
				break;
 
			default:
		}
 
		if (!bInitialized)
			zzMsg = "Initiating...";
		else
			zzMsg = "This Server Is Protected!";
 
		Canvas.SetPos(zzX,zzY);
		Canvas.DrawIcon(texture'NBSPShield',1.00);
		Canvas.SetPos(zzX+70,zzY+36);
		Canvas.Font = ChallengeHUD(PP.myHUD).MyFonts.GetSmallestFont(Canvas.ClipX);
		Canvas.DrawText(zzMsg);
		Canvas.SetPos(zzX+70,zzY+10);
		Canvas.Font = ChallengeHUD(PP.myHUD).MyFonts.GetMediumFont(Canvas.ClipX);		
		Canvas.DrawText(VersionStr);
		Canvas.Style = ERenderStyle.STY_Normal;
	}
}
 
simulated function Timer ()
{
	DrawTime=DrawTime + DrawTick;
 
	switch (DrawState)
	{
		case DRAW_BLANK:
			if ( DrawTime >= WaitTime )
			{
				DrawState=DRAW_FADE_IN;
				DrawTime=0.00;
			}
			break;
 
		case DRAW_FADE_IN:
			if ( DrawTime >= FadeInTime )
			{
				if (!bInitialized) { bInitialized=True; }
				PP.ClientPlaySound(Sound'SpeechWindowClick',False);
				DrawState=DRAW_DISPLAY;
				DrawTime=0.00;
			}
			break;
 
		case DRAW_DISPLAY:
			if (( PP != None ) && 
				( PP.PlayerReplicationInfo != None ) &&
				( PP.PlayerReplicationInfo.bWaitingPlayer ) &&
				( PP.GameReplicationInfo.GameClass != "RocketArena.RocketArenaGame"))
			{
				DrawTime=0.00;
			}
 
			if ( DrawTime >= AliveTime )
			{
				DrawState=DRAW_FADE_OUT;
				DrawTime=0.00;
			}
 
			break;
 
		case DRAW_FADE_OUT:
			if ( DrawTime >= FadeOutTime )
			{
				DrawState=DRAW_DONE;
				DrawTime=0.00;
			}
			break;
 
		case DRAW_DONE:
			SetTimer(0.00,False);
			break;
 
		default:
	}
 
	Super.Timer();
}
 
defaultproperties
{
     VersionStr="NoBullShitPlus v1.09"
     RemoteRole=ROLE_SimulatedProxy
     bAlwaysRelevant=True
     bNetTemporary=True
     WaitTime=0.20 
     FadeInTime=1.00 
     AliveTime=3.50 
     FadeOutTime=1.00
}