//===========================================================================//
// File:	MLRStuff.hpp                                                     //
// Project: Adept           Brick: ???                                       //
// Contents: ???                                                             //
//---------------------------------------------------------------------------//
//   Date    Who  Modification                                               //
// --------  ---  ---------------------------------------------------------- //
// 00/00/00  XXX  Initial coding.                                            //
//---------------------------------------------------------------------------//
// Copyright (C) 1995-1998, Virtual World Entertainment, Inc.                //
// All Rights reserved worldwide                                             //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL               //
//===========================================================================//

#pragma once

#include <Stuff\Stuff.hpp>

namespace gosFX
{

	//
	//--------------
	// gosFX classes
	//--------------
	//
	enum {
		EffectClassID = Stuff::FirstgosFXClassID,
			ParticleCloudClassID,
				PointCloudClassID,
				SpinningCloudClassID,
					ShardCloudClassID,
					PertCloudClassID,
					CardCloudClassID,
					ShapeCloudClassID,
					EffectCloudClassID,
			SingletonClassID,
				CardClassID,
				ShapeClassID,
			TubeClassID,
			DebrisCloudClassID,
			PointLightClassID,
			BeamClassID,
			FlareClassID,
			SpriteCloudClassID,
		FirstFreegosFXClassID,
	};

	enum {CurrentGFXVersion = 25};

	int
		ReadGFXVersion(Stuff::MemoryStream *erf_stream);
	void
		WriteGFXVersion(Stuff::MemoryStream *erf_stream);

	void InitializeClasses(Stuff::NotationFile *startup_ini=NULL);
	void TerminateClasses(Stuff::NotationFile *startup_ini=NULL);

	extern HGOSHEAP Heap;

	extern const Stuff::LinearMatrix4D &Effect_Into_Motion;
	extern const Stuff::LinearMatrix4D &Effect_Against_Motion;

	DECLARE_TIMER(extern, Animation_Time);
	DECLARE_TIMER(extern, Draw_Time);
	extern DWORD Point_Count;
	extern DWORD Shard_Count;
	extern DWORD Pert_Count;
	extern DWORD Card_Count;
	extern DWORD Shape_Count;
	extern DWORD Profile_Count;
	extern DWORD Beam_Count;
	extern DWORD Flare_Count;
}

#include "Fcurve.hpp"
