// MissionData.h: interface for the MissionData class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MISSIONDATA_H__2C239272_1182_428E_9CA6_7AABDB8CDBC1__INCLUDED_)
#define AFX_MISSIONDATA_H__2C239272_1182_428E_9CA6_7AABDB8CDBC1__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include<Stuff\Stuff.hpp>
#include<Adept\Resource.hpp>

namespace Adept
{
class Mission__GameModel;
};

using namespace Stuff;
using namespace Adept;

class MissionData  
{
protected:
	const Adept::Mission__GameModel *ModelData;
	bool SetAttribute(char *atb,bool value);
	bool SetAttribute(char *atb,LPCSTR value);
	bool SetAttribute(char *atb,Scalar value);
	bool SetAttribute(char *atb,RGBAColor value);
	bool SetAttribute(char *atb,ResourceID &value);
	void UpdateVisualSettings();
	void MakeDefault();
public:
	void SetDayFogColor(RGBAColor &col);
	void SetNightFogColor(RGBAColor &col);
	void SetNightGroundColor(RGBAColor &col);
	void SetFogColorUnderWater(RGBAColor &col);
	void SetFogColorSmoke(RGBAColor &col);
	void SetGeneralFog(Scalar start,Scalar end,Scalar density);
	void SetCustomFog(Scalar start,Scalar end,Scalar density);
	void SetLightFog(Scalar start,Scalar end,Scalar density);
	void SetHeightFog(Scalar start,Scalar end,Scalar density);
	void SetRespawn(bool val);
	void SetRunningLights(bool val);
	void SetSearchLights(bool val);
	void SetHeatSinkEfficiency(Scalar val);
	void SetWeather(ResourceID &value);
	void SetNightWeather(ResourceID &value);

	RGBAColor  GetDayFogColor();
	RGBAColor GetNightFogColor();
	RGBAColor GetNightGroundColor();
	RGBAColor GetFogColorUnderWater();
	RGBAColor GetFogColorSmoke();
	void GetGeneralFog(Scalar *start,Scalar *end,Scalar *density);
	void GetCustomFog(Scalar *start,Scalar *end,Scalar *density);
	void GetLightFog(Scalar *start,Scalar *end,Scalar *density);
	void GetHeightFog(Scalar *start,Scalar *end,Scalar *density);
	bool GetRespawn();
	bool GetRunningLights();
	bool GetSearchLights();
	ResourceID GetWeather();
	ResourceID GetNightWeather();
	Scalar GetHeatSinkEfficiency();

	MissionData();
	void SaveText(Stuff::NotationFile *not_file);
	void SyncToGame();
	virtual ~MissionData();
};

#endif // !defined(AFX_MISSIONDATA_H__2C239272_1182_428E_9CA6_7AABDB8CDBC1__INCLUDED_)
