#if !defined(MAXPROXIES_MAXPROXIES_HPP)
	#define MAXPROXIES_MAXPROXIES_HPP

	
	#include <Stuff\Stuff.hpp>
	#include <Proxies\Proxies.hpp>

#pragma pack(push,8)	

#undef Min
#undef Max


	#pragma warning(push)
	#if !defined(I_INCLUDED_MAX_H)
		#ifdef STRICT							// Already defined by stdafx,
		#undef STRICT							// so we avoid warning linking msg
		#endif
		#include <Max.h>
		#define I_INCLUDED_MAX_H

		#if !defined(I_INCLUDED_DECOMP_H)
			#include <decomp.h>
			#define I_INCLUDED_DECOMP_H
		#endif

		#if !defined(I_INCLUDED_STDMAT_H)
			#include <STDMAT.H>
			#define I_INCLUDED_STDMAT_H
		#endif

		#if !defined(I_INCLUDED_BMMLIB_H)
			#include <BMMLIB.H>
			#define I_INCLUDED_BMMLIB_H
		#endif

		#if !defined(I_INCLUDED_BITMAP_H)
			#include <BITMAP.H>
			#define I_INCLUDED_BITMAP_H
		#endif
	#endif
	#pragma warning(pop)
	
#pragma pack(pop)	


	#define START_FPU_CHECK() \
		_clear87(); \
		_control87(_MCW_EM - (_EM_INVALID|_EM_ZERODIVIDE|_EM_OVERFLOW), _MCW_EM);
	
	#define STOP_FPU_CHECK() \
		_control87(_MCW_EM, _MCW_EM);
	
	#define Clear_Fpu() \
		_clear87();


namespace MAXProxies {

	enum {
		MAXSceneClassID = Stuff::FirstMAXProxiesClassID,
		MAXGroupClassID,
		MAXPolygonMeshClassID,
		MAXVertexClassID,
		MAXPolygonClassID,
		MAXIndexClassID,
		MAXStateClassID,
		MAXTextureClassID,
		MAXLightClassID,
		MAXStateLibraryClassID,
		MAXTextureLibraryClassID,
		FirstFreeMAXProxiesClassID
	};

	void InitializeClasses();
	void TerminateClasses();

}
	#if FirstFreeMAXProxiesClassID > FirstSIStuffClassID
		#error MAXProxies class IDs have overrun their allocated space!
	#endif

	#if !defined(NO_PRECOMPILED_HEADERS)

		#include <MAXProxies\MAXScene.hpp>
		#include <MAXProxies\MAXGroup.hpp>
		#include <MAXProxies\MAXState.hpp>
		#include <MAXProxies\MAXPolygon.hpp>
		#include <MAXProxies\MAXLight.hpp>
		#include <MAXProxies\MAXVertex.hpp>
		#include <MAXProxies\MAXPolygonMesh.hpp>
		#include <MAXProxies\MAXIndex.hpp>
		#include <MAXProxies\MAXTexture.hpp>

		#include <MAXProxies\FindMAXErrors.hpp>
		#include <MAXProxies\FlattenMAXHierarchy.hpp>
		#include <MAXProxies\MAXStateSort.hpp>
		#include <MAXProxies\MAXCleanHierarchy.hpp>
		#include <MAXProxies\MAXCopy.hpp>
	#endif


#endif

