#pragma once

//-----------------------------------------------------
// Include Files
//-----------------------------------------------------
#include "Matrix2D.h"
#include "Item.h"
class ResourceLoader;
class Painter;
class InputState;
class Image;
class CollisionMesh;

//-----------------------------------------------------
// Barrel Class									
//-----------------------------------------------------
class Barrel : public Item
{
public:
	Barrel(ResourceLoader* resourceLoaderPtr,const String& imageName);
	virtual ~Barrel();

	void Paint(Painter *painterPtr, Matrix2D matTransform);
	void Tick(InputState *inputStatePtr);
	bool HitTest(Character *characterPtr);
	void KeyUp(TCHAR cKey);

	Point2D GetPosition() const;
	void SetPosition(Point2D pt);
private: 
	//-------------------------------------------------
	// Datamembers								
	//-------------------------------------------------

	bool m_HitCharacter;
	bool m_Trigger;
	Point2D m_liftPostion;
	double m_Mass;
	
	//States
	static const int STATE_STANDING=0;
	static const int STATE_PICKED_UP=1;
	static const int STATE_ROLLING=2;

	// -------------------------
	// Disabling default copy constructor and default 
	// assignment operator.
	// -------------------------
	Barrel(const Barrel& yRef);									
	Barrel& operator=(const Barrel& yRef);	
};