// File.cpp

#include "linux.h"
#include "dosfile.h"
#include <stdio.h>

#include "File.h"


#include <stddef.h>
#include <stdlib.h>


CFile::CFile()
{
	File = NULL;
}


CFile::~CFile()
{
	if (File)
	{
		fclose( (FILE*) File );
		File = NULL;
	}
}


s32 CFile::Create( const char *filename )
{
	Close();

	File = fopen( filename,	 "w+");

	if (File == 0)
		return( FALSE );

	return( TRUE );
}


s32 CFile::Open( const char *filename )
{
	Close();

	File = fopen( filename, "r" );

	if (File == NULL )
		return( FALSE );

	return( TRUE );
}


void CFile::Close()
{
	if (File)
	{
		fclose( File );
		File = NULL;
	}
}


void CFile::Read( void *data, s32 size )
{
	DWORD
		done;

	fread( data, 1, size, File );
	//	ReadFile( File, data, size, &done, NULL );
}


void CFile::Write( const void *data, s32 size )
{
	DWORD
		done;

	fwrite( data, 1, size, File );
	//	WriteFile( File, data, size, &done, NULL );
}


s32 CFile::GetPos()
{
   //	return( SetFilePointer( File, 0, NULL, FILE_CURRENT ) );
   ftell( File );
}


s32 CFile::GetSize()
{
	s32
		pos,
		size;


	pos = ftell( File );
	fseek( File, 0, SEEK_END );

	size = ftell( File );

	fseek( File, pos, SEEK_SET );

	return size;

	/*
	pos = SetFilePointer( File, 0, NULL, FILE_CURRENT );
	size = SetFilePointer( File, 0, NULL, FILE_END );
	SetFilePointer( File, pos, NULL, FILE_BEGIN );
	return( size );*/
}


void CFile::Seek( s32 pos )
{
   if ( pos > 0 )
   {
      fseek( File, pos, SEEK_SET );
   }
   else
   {
      fseek( File, pos, SEEK_END );
   }
}


void CFile::Skip( s32 skip )
{

   char* temp[ 10000 ];
   
   fseek( File, skip, SEEK_CUR );
   //	SetFilePointer( File, skip, NULL, FILE_CURRENT );
}


void CFile::End()
{
   fseek( File, 0, SEEK_END );
   //	SetFilePointer( File, 0, NULL, FILE_END );
}
