// Open SanAndreas 
// (c) 2006-2008 Stanislav "listener" Golovin
//
// particles and graphics effects
#pragma pack(push, 1)
class CParticleData {
public:

	struct ParticleList {
		void *	ptr;
		ParticleList * next;
		DWORD	hash;
	};

	struct ParticleListHead {
		ParticleList * ptr;
		DWORD	_f4;
		int		count;
	};

	struct SimpleBuffer {
		void *	ptr;
		DWORD	size;
		DWORD	position;
	};

	void * findDataByName (char * name);

	ParticleListHead	_f0;
	ParticleListHead	_fC;
	DWORD		_f18;
	ParticleListHead	_f1C;
	int			txdIndex;
	DWORD		_f2C;
	DWORD		_f30;
	DWORD		_f34;	// это объект, длиной как минимум 0x14 байт
	DWORD		_f38;
	DWORD		_f3C;
	DWORD		_f40;
	DWORD		_f44;
	DWORD		_f48;
	DWORD		_f4C;
	DWORD		_f50;
	DWORD		_f54;
	DWORD		_f58;
	DWORD		_f5C;
	DWORD		_f60;
	DWORD		_f64;
	DWORD		_f68;
	DWORD		_f6C;
	DWORD		_f70;
	DWORD		_f74;
	DWORD		_f78;
	DWORD		_f7C;
	DWORD		_f80;
	DWORD		_f84;
	RwMatrix *	currentMatrix;	// TODO: CMatrix * ?
	RwMatrix *	matrices[8];	// TODO: CMatrix * ?
	SimpleBuffer buffer;
};

extern CParticleData * particleData;


#pragma pack(pop)