#if defined entWatch_class_config_included
	#endinput
#endif

#define entWatch_class_config_included

methodmap CConfig < Basic
{
	public CConfig()
	{
		Basic myclass = new Basic();

		myclass.SetString("sName",   "");
		myclass.SetString("sShort",  "");
		myclass.SetString("sColor",  "");
		myclass.SetString("sFilter", "");

		myclass.SetInt("iButtonID",  0);
		myclass.SetInt("iConfigID",  0);
		myclass.SetInt("iWeaponID",  0);
		myclass.SetInt("iTriggerID", 0);

		myclass.SetInt("iDisplay",   0);
		myclass.SetInt("iMode",      0);

		myclass.SetInt("iMaxUses",   0);
		myclass.SetInt("iCooldown",  0);

		return view_as<CConfig>(myclass);
	}


	public bool GetName(char[] buffer, int length)
	{
		return this.GetString("sName", buffer, length);
	}

	public void SetName(const char[] buffer)
	{
		this.SetString("sName", buffer);
	}

	public bool GetShort(char[] buffer, int length)
	{
		return this.GetString("sShort", buffer, length);
	}

	public void SetShort(const char[] buffer)
	{
		this.SetString("sShort", buffer);
	}

	public bool GetColor(char[] buffer, int length)
	{
		return this.GetString("sColor", buffer, length);
	}

	public void SetColor(const char[] buffer)
	{
		this.SetString("sColor", buffer);
	}

	public bool GetFilter(char[] buffer, int length)
	{
		return this.GetString("sFilter", buffer, length);
	}

	public void SetFilter(const char[] buffer)
	{
		this.SetString("sFilter", buffer);
	}


	property int iButtonID
	{
		public get()
		{
			return this.GetInt("iButtonID");
		}
		public set(int value)
		{
			this.SetInt("iButtonID", value);
		}
	}

	property int iConfigID
	{
		public get()
		{
			return this.GetInt("iConfigID");
		}
		public set(int value)
		{
			this.SetInt("iConfigID", value);
		}
	}

	property int iWeaponID
	{
		public get()
		{
			return this.GetInt("iWeaponID");
		}
		public set(int value)
		{
			this.SetInt("iWeaponID", value);
		}
	}

	property int iTriggerID
	{
		public get()
		{
			return this.GetInt("iTriggerID");
		}
		public set(int value)
		{
			this.SetInt("iTriggerID", value);
		}
	}


	property int iDisplay
	{
		public get()
		{
			return this.GetInt("iDisplay");
		}
		public set(int value)
		{
			this.SetInt("iDisplay", value);
		}
	}

	property int iMode
	{
		public get()
		{
			return this.GetInt("iMode");
		}
		public set(int value)
		{
			this.SetInt("iMode", value);
		}
	}


	property int iMaxUses
	{
		public get()
		{
			return this.GetInt("iMaxUses");
		}
		public set(int value)
		{
			this.SetInt("iMaxUses", value);
		}
	}

	property int iCooldown
	{
		public get()
		{
			return this.GetInt("iCooldown");
		}
		public set(int value)
		{
			this.SetInt("iCooldown", value);
		}
	}


	property bool bDisplayEventMessages
	{
		public get()
		{
			return view_as<bool>(this.iDisplay & (1<<0));
		}
	}

	property bool bDisplayActivateMessages
	{
		public get()
		{
			return view_as<bool>(this.iDisplay & (1<<1));
		}
	}

	property bool bDisplayInterface
	{
		public get()
		{
			return view_as<bool>(this.iDisplay & (1<<2));
		}
	}
}