// Reader.h: interface for the Reader class.
//
//////////////////////////////////////////////////////////////////////
#ifndef READER_H
#define READER_H


#define SAFE_DELETE(p)		{ if(p) { delete (p);     (p)=NULL; } }

#include <fstream>
using namespace std;


class Reader
{
public:
	Reader();
	Reader(char* path);
	virtual ~Reader();

	void		getChunkNoMove(void* dest, long size);
	void		getChunk(void* dest, long size);
	long		getSize();
	void		movePtrPos(long pos);
	void		setPtrPos(long pos);
	long		getStringNoMove(char* str, int len);		// Gets a string terminated by a char < 0x1F
	long		getString(char* str, int len);			// Gets a string terminated by a char < 0x1F
	long		getLine( char* dest, int len );			// Reads a line of text to dest. Terminated by "\n"
	void*		getBuffer();

	float		getFloat();
	long		getDword();
	short		getWord();
	char		getByte();

	float		getFloatNoMove();
	long		getDwordNoMove();
	short		getWordNoMove();
	char		getByteNoMove();

	void		setFilePath(char* path);

protected:
	bool		fileLoaded;
	bool		processed;

	char		fileDrive[_MAX_DRIVE],
				fileDir[_MAX_DIR],
				fileName[_MAX_FNAME],
				fileExt[_MAX_EXT],
				filePath[_MAX_PATH];			// Sökväg till fil att öppna

private:
	ifstream	inputStream;

	void		clearReader();
};


#endif

