#pragma once

#include "..\munga\director.h"

class RPPlayer;

class RPCameraDirector :
	public CameraDirector
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Shared Data support
//
public:

	static Derivation *GetClassDerivations();
	static SharedData DefaultData;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Simulation Support
//
public:
	typedef void
		(RPCameraDirector::*Performance)(Scalar time_slice);

	void
		SetPerformance(Performance performance)
			{
				Check(this);
				activePerformance = (Simulation::Performance)performance;
			}

	void
		CreateRPCameraShip(Scalar);

	void
		BeARPDirector(Scalar);

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Construction and Destruction Support
//
	RPCameraDirector(
		MakeMessage	*creation_message,
		SharedData &virtual_data = DefaultData
	);

	static RPCameraDirector*
		RPCameraDirector::Make(CameraDirector::MakeMessage *creation_message);

	~RPCameraDirector();

	Logical
		TestInstance() const;

protected:
	RPPlayer
		*currentWatchedPlayer;

	Logical
		martianFootball;
};
