/*
**	Command & Conquer Generals(tm)
**	Copyright 2025 Electronic Arts Inc.
**
**	This program is free software: you can redistribute it and/or modify
**	it under the terms of the GNU General Public License as published by
**	the Free Software Foundation, either version 3 of the License, or
**	(at your option) any later version.
**
**	This program is distributed in the hope that it will be useful,
**	but WITHOUT ANY WARRANTY; without even the implied warranty of
**	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
**	GNU General Public License for more details.
**
**	You should have received a copy of the GNU General Public License
**	along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef FILED_HEADER
#define FILED_HEADER

#include "odevice.h"

class FileD : public OutputDevice
{
 public:
   FileD(char *filename, bool outputDebug) : m_outputDebug(outputDebug)
   { 
     out=fopen(filename,"w");
     if (out==NULL)
       out=fopen("FileDev.out","w");
   }

   virtual ~FileD()
   { fclose(out); }

   virtual int print(const char *str,int len)
   {
     char *string=new char[len+1];
     memset(string,0,len+1);
     memcpy(string,str,len);
     fprintf(out,"%s",string);
		 if (m_outputDebug)
		 {
			 OutputDebugString(string);
		 }
     delete[](string);
     fflush(out);
     return(len);
   }

   FILE      *out;
	 bool m_outputDebug;
};

#endif
