/*
 =======================================================================================
  Name        :IniData.h
 
  Author      : Mihaela Tancu
  Description : File containing functions for saving, loading, ...  
 =======================================================================================
 */

#ifndef __INIDATA_H__
#define __INIDATA_H__

#include <afxdisp.h>

/*
 =======================================================================================
	Constants
 =======================================================================================
 */

static COLORREF gs_a_xLineColor[3] = { RGB( 255, 0,0), RGB( 0,0,0), RGB(0, 0, 255)};

/*
 =======================================================================================
  constants for main window min size
 =======================================================================================
 */
#define C_iMainWindowWidth				520 
#define C_iMainWindowHeight				583 

/*
 =======================================================================================
  File .ini
 =======================================================================================
 */
#define C_szIniFile "GIData.ini"
#define C_szStartPrgIniFile "StartPrg.ini"

/*
 =======================================================================================
	Structures
 =======================================================================================
 */

typedef struct tdstInitialValue_
{
	char	szTempPath1[MAX_PATH];		// temporary path for the destination path
	char	szDestBinDD3D[MAX_PATH];	// name of 
	char	szTempPath2[MAX_PATH];		// temporary path for 
	char	szSource[MAX_PATH];			// name of 
	char	szTempPath3[MAX_PATH];		// temporary path for 
	char	szDestBinRD3D[MAX_PATH];	// name of 
	char	szTempPath4[MAX_PATH];		// temporary for 
	char	szMode[MAX_PATH];			// name of 
	char	szTempPath5[MAX_PATH];		// temporary path for 
	char	szDestBinDDFX[MAX_PATH];	// name of 
	char	szTempPath6[MAX_PATH];		// temporary path for 
	char	szDestBinRDFX[MAX_PATH];	// name of 
/*	char	szTempPath7[MAX_PATH];		// temporary path 
	char	sz3DCard[MAX_PATH];			// name of
*/
	char	szTempPath7[MAX_PATH];		// temporary path 
	char	szFix[MAX_PATH];			// name of

	char	szTempPath8[MAX_PATH];		// temporary name for the exe file
	char	szExeFile[MAX_PATH];		// name of exe
} tdstInitialValue;

extern BOOL bDebug;
extern BOOL bConvAnim;
extern BOOL bConvTextures;
//extern BOOL b3DCard;
extern BOOL bConvLevels;
extern BOOL bDsc;
extern BOOL bFix1;
extern BOOL bAuto;
extern BOOL bStartPrg;

typedef struct tdstWindowsPosSize_
{
	RECT	stMainPos;					// window dimension
}tdstWindowsPosSize;
 
/*
 =======================================================================================
  Globals
 =======================================================================================
 */
extern tdstInitialValue			g_stInitialData;		// initial data
extern char						g_szIniFile[MAX_PATH];	// ini file
extern tdstWindowsPosSize		g_stWinPosSize;			// program options
extern char						g_szStartPrgIniFile[MAX_PATH];	// ini file

/*
 =======================================================================================
 Functions
 =======================================================================================
 */
void fn_IniData_vSetDestBinDD3D( char *_szPath );
void fn_IniData_vSetSource( char *_szPath );
void fn_IniData_vSetDestBinRD3D( char *_szPath );
void fn_IniData_vSetDestBinDDFX( char *_szPath );
void fn_IniData_vSetDestBinRDFX( char *_szPath );
//getting the position and size of the main window
void fn_IniData_vGetWindowPosSize( void );
//setting the position and size of the main window
void fn_IniData_vWriteWindowPosSize( void );
//function used for the getting the pos and size of the main window
void fn_IniData_vStudyRect( char *_szString, RECT *_p_stRect );
//obtaining all thbe ddatas in the .ini file for the executable name,
//for the local path of the executable file, the path for GameData, 
//RawData, Textures and Default directories, and
//the position and size of the main windoow of the application
void fn_IniData_vGetDatasFromFile( BOOL _bFirst );
void fn_IniData_vSetMode( BOOL bSetIgnore);
void fn_IniData_vSet3DCard( BOOL bSetIgnore);
void fn_ComRes_vDeleteLines( CRichEditCtrl *_oRichEdit);
void fn_ComRes_vWriteLine( char *szLine, char cLineType ,CRichEditCtrl* _oRichEdit, 
									CHARFORMAT* _stCharFormat);

void fn_IniData_vSetGDDebugBin( char *_szPath );
void fn_IniData_vSetGDReleaseBin( char *_szPath );

void fn_IniData_vSetSPDebug( char *_szPath );
void fn_IniData_vSetSPRelease( char *_szPath );
void fn_IniData_vSetAskAtEachTime( char *_szPath );
void fn_IniData_vSetAskAtEachTime( int iValue );
void fn_IniData_vSetBinDebugIsOk( int iValue );
void fn_IniData_vSetBinReleaseIsOk( int iValue );
void fn_IniData_vSetBinUseBinaryData( int iValue );
void fn_IniData_vGetDatasFromStartFile( BOOL _bFirst );
void fn_IniData_vSetDscCreated(BOOL bDsc);
void fn_IniData_vSetFix( BOOL bFix );
void fn_IniData_vSetCompleteBinarization( BOOL bDsc );

#endif //__INIDATA_H__
