#pragma once
#include <windows.h>
#include <string>
using std::string;
#include "C:\L\Bitmap\Bitmap.h"
#include "C:\L\Button\Button.h"
#include "C:\L\List\List.h"
#include "WizAniNodes.h"//C:\L\instruction
#define		WizardWidth		75
#define		WizardHeigh		94
enum WizardActions
{
	//This group represents figures facing the User...
	wizActTeleportIn = 0,		//wiz00.bmp
	wizActBowing,				//wiz01.bmp
	wizActArmsSpread,			//wiz02.bmp
	wizActRaiseArms,			//wiz03.bmp
	wizActTeleportOut,			//wiz04.bmp
	wizActHeadTiltR,			//wiz05.bmp
	wizActHeadTiltL,			//wiz06.bmp
    wizActFoldedHands,			//wiz07.bmp
	wizActTalkHeadTiltR,		//wiz08.bmp
	wizActTalkHeadTiltL,		//wiz09.bmp
	wizActArmsHeldOpen,			//wiz10.bmp
	wizActTalkHeadTiltRJesture,	//wiz11.bmp
	wizActTalkHeadTiltRHold,	//wiz12.bmp
	wizActCenterBlahBlahBlah,	//wiz13.bmp

	//This group represents figures pointing to the left...
	wizActPointLeftHighMoving,	//wiz00.bmp
	wizActPointLeftHighHold,	//wiz01.bmp
	wizActPointLeftLowMoving,	//wiz02.bmp
	wizActPointLeftLowHold,		//wiz03.bmp

	//This group represents figures pointing to the right...
	wizActPointRightHighMoving,	//wiz00.bmp
	wizActPointRightHighHold,	//wiz01.bmp
	wizActPointRightLowMoving,	//wiz02.bmp
	wizActPointRightLowHold,	//wiz03.bmp
	wizACTSMAX
};
class Instruction
{
public:
				Instruction		();
				~Instruction	();
	void		Reset			();

	void		LoadImages		(HWND hWin);
	void		IncrementFrame	(int Action);
	void		Move			(int X, int Y);
	void		MoveMsg			(int L1, int T1, int R1, int B1, int L2, int T2, int R2, int B2);
	int			GetFrame		() const;
	int			GetFrameWidth	() const;
	int			GetFrameHeight	() const;
	void		SetActive		(bool data);
	bool		GetActive		() const;
	void		SetActionIndex	(int Index);
	int			GetActionIndex	() const;

	void		PaintSelf		(HDC hDC, int MouseX, int MouseY);
	void		AssignTheatric	(int BMPAniIndex, int StartFrame, int NumFrames, bool Repeat);
	void		ClearCurTheater	();

	RECT		WizLocation;
	RECT		MsgRect;
	Bitmap		bmpImages[wizACTSMAX];
	Bitmap		bmpMsgBG;
	Bitmap		bmpWizBG;

	int			numFramesPer[wizACTSMAX];
	int			intFrameWidth;
	int			intFrameHeight;

	int			intActionIndex;		//What action...
	int			intCurFrame;		//What frame are we on?
	int			intVarStart;		//Where will the frame index start?
	int			numActions;

	bool		bRepeatImage;
	bool		bIsActive;
	bool		bCloseAni;
	bool		bDisplayMsg;

	string		Speech;
	myButton	*wzButtons;
	int			numWizBtns;

	List<WizAniNodes> Theatrics;
};