class KFSGameReplicationInfo extends KFGameReplicationInfo;

var KFSPLevelinfo KFPLevel; // Easier to do it this way.
var int CurrentObjectiveNum,ClientObjNum;

replication
{
	reliable if( bNetDirty && Role==ROLE_Authority )
		CurrentObjectiveNum;
}

simulated function PostBeginPlay()
{
	Tag = 'NextObjective';
	Super.PostBeginPlay();
}
simulated function PostNetBeginPlay()
{
	Super.PostNetBeginPlay();
	ClientObjNum = CurrentObjectiveNum;
	bNetNotify = True;
}

function Trigger( actor Other, pawn EventInstigator )
{
	local PlayerController PC;

	CurrentObjectiveNum++;
	PC = Level.GetLocalPlayerController();
	if( PC!=None )
		PC.ReceiveLocalizedMessage(Class'KFObjectiveMsg',CurrentObjectiveNum,,,KFPLevel);
}

simulated function PostNetReceive()
{
	local PlayerController PC;

	if( CurrentObjectiveNum!=ClientObjNum )
	{
		ClientObjNum = CurrentObjectiveNum;
		PC = Level.GetLocalPlayerController();
		if( PC!=None )
			PC.ReceiveLocalizedMessage(Class'KFObjectiveMsg',CurrentObjectiveNum,,,KFPLevel);
	}
}
