// EdIRBELs.hpp : header file
//

#ifndef _EDIRBELS_HPP_
#define _EDIRBELS_HPP_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

//////////////////////////////////////////////////////////////////
// class CPA_EdIR_MainBehaviourList
//////////////////////////////////////////////////////////////////

#include <afxtempl.h>

#include "ITF\CPAMdf.hpp"

class CPA_EdIR_MainBehaviour;
class CPA_Actor;
class CPA_EdIR_DebugInfoList;

class CPA_EdIR_MainBehaviourList : public CList<CPA_EdIR_MainBehaviour *,CPA_EdIR_MainBehaviour *>
{
	private:
		BOOL										m_bHasBeenModified;

	public:
		CPA_EdIR_MainBehaviour	*m_pclOldActiveMainBehaviour;
		CPA_EditManager					m_clEditManager;

	public:
		CPA_EdIR_MainBehaviourList();
		CPA_EdIR_MainBehaviourList(CPA_Actor *,CPA_EdIR_MainBehaviourList *);
		~CPA_EdIR_MainBehaviourList();

		void	m_fn_vDeleteAllMainBehaviours();

		//for printing
		long	m_fn_lGetNbPages(long,long,BOOL);
		void	m_fn_vPrint(long,long,BOOL,long,CDC *,CPrintInfo *);

		//for saving
		void	m_fn_vSaveBehaviourList(struct SCR_tdst_File_Description_ *,CString,CString,CString);
		BOOL	m_fn_bSaveIA(struct SCR_tdst_File_Description_ *,struct AI_tdstMind_ *,enum tdeTypeText_);

		//Check IA
		BOOL	m_fn_bCheckIA(enum tdeTypeText_, BOOL ForProcess = FALSE);

		//Interprets IA
		BOOL	m_fn_bProcessIA(BOOL,BOOL,struct AI_tdstMind_ *,struct tdstComport_ *,enum tdeTypeText_,CPA_EdIR_DebugInfoList *);

		BOOL	m_fn_bHasBeenModified();
		void	m_fn_vSetModified(BOOL);

		//
		BOOL										m_fn_bIsInList(CString);
		long										m_fn_lGetIndexOfABehaviour(CString);
		CPA_EdIR_MainBehaviour	*m_fn_pclGetMainBehaviour(CString);
		// BEGIN CPA2 Cristi Petrescu 98-03-
		CString					m_fn_csGetRules (CString);
		// END CPA2 Cristi Petrescu 98-03-
};

#endif //_EDIRBELS_HPP_
