#pragma once

#include "MW4.hpp"
#include <Adept\Resource.hpp>

namespace MechWarrior4
{

	class MWOptions:
		public Stuff::Plug
	{
	public:
		MWOptions(Stuff::MemoryStream *stream);
		~MWOptions() {}

	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	// Load and Save Support
	//
	public:
		static void
			ConstructOptionsStream(Stuff::NotationFile *note_file, Stuff::MemoryStream *stream);
		void
			SaveToStream(Stuff::MemoryStream *stream);

	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	// Options
	//
		
	public:
		ResourceID m_ControlStream;

		enum{
			Res640x480 = 0,
			Res800x600,
			Res1024x768,
			Res1280x1024,
			Res1600x1200
		};

		//Game Options
		int
			m_difficultyLevel;
		int
			m_useHeat;
		int
			m_unlimmitedAmmo;
		int
			m_useInvincibility;
		int
			m_friendlyFire;
		int
			m_splashDamage;
		int
			m_weaponJam;
		int
			m_ammobayFire;
// MSL 5.05 Advance Mode
		int
			m_advanceMode;
// MSL 5.06 Armor Mode
		int
			m_armorMode;
		int
			m_defaultView;

		//Video Options
		int
			m_resolution;
		Stuff::Scalar
			m_contrast;
		Stuff::Scalar
			m_brightness;
		Stuff::Scalar
			m_gamma;

		//Audio Options
		int
			m_sfxVolume;
		int
			m_musicVolume;
		int
			m_bettyOn;
		int
			m_audioHardware;
		int
			m_forceFeedback;			//On, Off
		int
			m_playerInsignia;
		int
			m_teamInsignia;

		Stuff::MString
			m_closingCinemaName;

		//Multiplayer
		Stuff::MString
			m_playerName;

		Stuff::MString
			m_teamName;

		Stuff::MString
			m_password;

	};
}