#pragma once

class CAffectFlagContainer
{
	public:
		enum
		{
			BIT_SIZE = 64,
			BYTE_SIZE = BIT_SIZE/8+(1*((BIT_SIZE&7) ? 1 : 0)),
		};

	public:
		CAffectFlagContainer();
		~CAffectFlagContainer();		

		void Clear();
		void CopyInstance(const CAffectFlagContainer& c_rkAffectContainer);		
		void Set(UINT uPos, bool isSet);
		bool IsSet(UINT uPos) const;

		void CopyData(UINT uPos, UINT uByteSize, const void* c_pvData);

		void ConvertToPosition(unsigned* uRetX, unsigned* uRetY) const;
		
	private:
		typedef unsigned char Element;

		Element m_aElement[BYTE_SIZE];
};