#pragma once

#include "..\munga_l4\l4app.h"

//##########################################################################
//######################    RP4L4Application    ############################
//##########################################################################

class RPL4Application : public L4Application
{
public:
	RPL4Application(HINSTANCE hInstance, HWND hWnd, ResourceFile *resource_file, ClassID class_ID=L4ApplicationClassID, SharedData &shared_data=DefaultData);
	~RPL4Application();

private:
	Registry* MakeRegistry();

	VideoRenderer* MakeVideoRenderer();

	AudioRenderer* MakeAudioRenderer();

	GaugeRenderer* MakeGaugeRenderer(int *secondaryIndex, int *aux1Index, int *aux2Index);

	ModeManager* MakeModeManager();

	Mission* MakeMission(NotationFile *notation_file, ResourceFile *resources);

	Entity* MakeViewpointEntity(Entity__MakeMessage *);
};
