/////////////////////////////////////////////////////////////////////////////
// BRBDialog.h : header file
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_BRBDIALOG_H__27FFA501_5965_11D2_9972_E575B990F337__INCLUDED_)
#define AFX_BRBDIALOG_H__27FFA501_5965_11D2_9972_E575B990F337__INCLUDED_

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

#ifdef STRICT
	#undef STRICT
#endif

#include "Max.h"

#if !defined(STUFF_STUFF_HPP)
	#include "Stuff\Stuff.hpp"
#endif

#define  BRBDATA_CLASS_ID Class_ID(0x4c9b40d0, 0x3bf66064)
#define	 BRBDATA_SUPER_CLASS_ID    UTILITY_CLASS_ID
#define	 TEMP_DATA_ID 3
#define  PERM_DATA_ID 4
#define	 MAX_FILES 8
#define  ONE_MINUS_MAX_FILES (MAX_FILES-1)


/////////////////////////////////////////////////////////////////////////////
// structure to save way we are exporting to be used in the case of command
// line exporting.  defaults are all false.
//
//typedef struct {
//	bool overwriteTextures; 
//	bool exportCharacter;
//	bool outputAmatureFile;
//} ExportInfo;

/////////////////////////////////////////////////////////////////////////////
// 
// structure to save way we are exporting to be used in the case of command
// line exporting.  defaults are all false.
//
typedef struct {
	bool overwriteTextures; 
	bool outputAmatureFile;
	unsigned exportType;
} ExportInfo;


/////////////////////////////////////////////////////////////////////////////
// BRBDialog dialog
class BRBDialog : public CDialog
{
// Construction
public:
	BRBDialog(Interface *i, CString *files, CWnd* pParent = NULL);   // standard constructor

	enum ETYPE {
		EXPORT_SHAPE		= 0,
		EXPORT_CHARACTER	= 1,
		EXPORT_ANIM			= 2,
	};

	//
	// methods added for writing files needed by adept engine and messing
	// with data in the max nodes
	//
	bool PreviewAnimation();

	bool AddPreferences(INode *node);
	bool RemovePreferences(INode *node);
	void GetGameDir();
	int  WriteBrbPropFile(ETYPE etype);

// Dialog Data
	//{{AFX_DATA(BRBDialog)
	enum { IDD = IDD_BRB };
	CButton	m_ctrlCharacter;
	//}}AFX_DATA


	UINT		m_lodFar[MAX_FILES];		// array of far lod distances
	UINT		m_lodNear[MAX_FILES];		// array of near lod distances

	int			exportCharacter,	//
				exportShape;		//

	CString		maxFiles[MAX_FILES];		// list of files to export
	Interface	*maxInterface;		// pointer to the max interface
	ExportInfo	exportInfo;			// data about export settings
	TSTR		brbGamePath;		// path that mech 4 lives in i.e. e:\MW4
	TSTR		erfPath;			// path that we write the erf to

	// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(BRBDialog)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL


// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(BRBDialog)
	afx_msg void OnSelectLOD1();
	afx_msg void OnSelectLOD2();
	afx_msg void OnSelectLOD3();
	afx_msg void OnSelectLOD4();
	afx_msg void OnSelectLOD5();
	afx_msg void OnSelectLOD6();
	afx_msg void OnSelectLOD7();
	afx_msg void OnSelectLOD8();
	virtual void OnCancel();
	virtual void OnOK();
	afx_msg void OnShape();
	afx_msg void OnCharacter();
	afx_msg void OnKillfocus();
	afx_msg void OnLod1Far();
	afx_msg void OnLod2Far();
	afx_msg void OnLod3Far();
	afx_msg void OnLod4Far();
	afx_msg void OnLod5Far();
	afx_msg void OnLod6Far();
	afx_msg void OnLod7Far();
	afx_msg void OnLod8Far();
	virtual BOOL OnInitDialog();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_BRBDIALOG_H__27FFA501_5965_11D2_9972_E575B990F337__INCLUDED_)
