745 lines
24 KiB
C++
745 lines
24 KiB
C++
/*
|
|
=======================================================================================
|
|
Name: IniData.cpp : implementation file(functions for getting ini data, check this data, write them ...)
|
|
Author: Mihaela Tancu
|
|
Date: 2 June 1998
|
|
=======================================================================================
|
|
*/
|
|
|
|
#include "stdafx.h"
|
|
#include "winbase.h"
|
|
#include "io.h"
|
|
#include "IniData.h"
|
|
#include <sys/stat.h>
|
|
#include <windows.h>
|
|
#include <stdio.h>
|
|
#include <conio.h>
|
|
|
|
#include "Scr.h"
|
|
#include "Print.h"
|
|
|
|
BOOL bDebug;
|
|
BOOL bConvAnim = FALSE;
|
|
BOOL bConvTextures = FALSE;
|
|
BOOL bConvLevels = TRUE;
|
|
BOOL bFix1;
|
|
BOOL bStartPrg = TRUE;
|
|
//BOOL b3DCard;
|
|
//BOOL bUsed = TRUE;
|
|
BOOL bDsc = FALSE;
|
|
/*
|
|
=======================================================================================
|
|
* Macro to bound size of a rect
|
|
=======================================================================================
|
|
*/
|
|
#define M_vVerifyRect( _p_stRect, _iMinWidth, _iMinHeight )\
|
|
{\
|
|
if (_p_stRect->right - _p_stRect->left + 1 < _iMinWidth )\
|
|
_p_stRect->right = _p_stRect->left + _iMinWidth ;\
|
|
if (_p_stRect->bottom - _p_stRect->top + 1 < _iMinHeight )\
|
|
_p_stRect->bottom = _p_stRect->top + _iMinHeight;\
|
|
}
|
|
|
|
/*
|
|
=======================================================================================
|
|
Globals
|
|
=======================================================================================
|
|
*/
|
|
tdstInitialValue g_stInitialData; // data in ini file
|
|
tdstInitialValue g_stDefaultData = // default value for data
|
|
{
|
|
"d:\\cpa\\appli\\BinaryTool\\GameDataBinDD3D", // default temp path for game data debug(computed)
|
|
"none", // default game data path (computed if none)
|
|
"d:\\cpa\\appli\\BinaryTool\\GameData", // default temp path for source directory (computed)
|
|
"none", // default source directory path (computed if none)
|
|
"d:\\cpa\\appli\\BinaryTool\\GameDataBinRD3D", // default temp path for game data release(computed)
|
|
"none", // default game data release path (computed if none)
|
|
"d:\\cpa\\appli\\BinaryTool\\GameDataBinDDFX", // default temp path for game data release(computed)
|
|
"none", // default game data release path (computed if none)
|
|
"d:\\cpa\\appli\\BinaryTool\\GameDataBinRDFX", // default temp path for game data release(computed)
|
|
"none", // default game data release path (computed if none)
|
|
"Debug", // default temp for debug
|
|
"none", // default
|
|
"D3D", // default temp for debug
|
|
"none", // default
|
|
"MainWinR.exe", // default temp for exe file
|
|
"none", // default
|
|
};
|
|
|
|
char g_szIniFile[MAX_PATH];
|
|
tdstWindowsPosSize g_stWinPosSize;
|
|
char g_szStartPrgIniFile[MAX_PATH];
|
|
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetDestBinDD3D
|
|
Description: Change the rights of the file to write
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetDestBinDD3D( char *_szPath )
|
|
{
|
|
if (_access( g_szIniFile, 2) == -1)
|
|
_chmod ( g_szIniFile, _S_IWRITE );
|
|
WritePrivateProfileString( "General directories", "DirNameDestBinDD3D", _szPath, g_szIniFile );
|
|
}
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: MLT_vOutput
|
|
Description: Write a string in the rich edit
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void MLT_vOutput( char cLineType, char *szFormat, ... )
|
|
{
|
|
va_list argptr;
|
|
char szLine[256];
|
|
|
|
va_start( argptr, szFormat );
|
|
vsprintf( szLine, szFormat, argptr );
|
|
va_end( argptr );
|
|
|
|
#ifndef _WINDOWS
|
|
cLineType = cLineType; // to avoid warning
|
|
fprintf( stderr, szLine );
|
|
#else
|
|
fn_vAfxOutputStringRes( szLine, cLineType);
|
|
#endif
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetSPDebug
|
|
Description: Change the rights of the file to write
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetSPDebug( char *_szPath )
|
|
{
|
|
if (_access( g_szStartPrgIniFile, 2) == -1)
|
|
_chmod ( g_szStartPrgIniFile, _S_IWRITE );
|
|
WritePrivateProfileString( "Glide", "Debug", _szPath, g_szStartPrgIniFile );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetSPRelease
|
|
Description: Change the rights of the file to write
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetSPRelease( char *_szPath )
|
|
{
|
|
if (_access( g_szStartPrgIniFile, 2) == -1)
|
|
_chmod ( g_szStartPrgIniFile, _S_IWRITE );
|
|
WritePrivateProfileString( "Glide", "Release", _szPath, g_szStartPrgIniFile );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetAskAtEachTime
|
|
Description: Change the rights of the file to write
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetAskAtEachTime( char *_szPath )
|
|
{
|
|
if (_access( g_szStartPrgIniFile, 2) == -1)
|
|
_chmod ( g_szStartPrgIniFile, _S_IWRITE );
|
|
WritePrivateProfileString( "Start", "AskAtEachTime", _szPath, g_szStartPrgIniFile );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetAskAtEachTime
|
|
Description: Change the rights of the file to write
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetAskAtEachTime( int iValue )
|
|
{
|
|
char szValue[2];
|
|
|
|
if (_access( g_szStartPrgIniFile, 2) == -1)
|
|
_chmod ( g_szStartPrgIniFile, _S_IWRITE );
|
|
|
|
if (iValue)
|
|
strcpy( szValue, "1");
|
|
else
|
|
strcpy( szValue, "0");
|
|
|
|
WritePrivateProfileString( "Start", "AskAtEachTime", szValue, g_szStartPrgIniFile );
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetBinDebugIsOk
|
|
Description: Change the rights of the file to write
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetBinDebugIsOk( int iValue )
|
|
{
|
|
char szValue[2];
|
|
|
|
if (_access( g_szStartPrgIniFile, 2) == -1)
|
|
_chmod ( g_szStartPrgIniFile, _S_IWRITE );
|
|
|
|
if (iValue)
|
|
strcpy( szValue, "1");
|
|
else
|
|
strcpy( szValue, "0");
|
|
|
|
WritePrivateProfileString( "Start", "BinDebugIsOk", szValue, g_szStartPrgIniFile );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetBinReleaseIsOk
|
|
Description: Change the rights of the file to write
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetBinReleaseIsOk( int iValue )
|
|
{
|
|
char szValue[2];
|
|
|
|
if (_access( g_szStartPrgIniFile, 2) == -1)
|
|
_chmod ( g_szStartPrgIniFile, _S_IWRITE );
|
|
|
|
if (iValue)
|
|
strcpy( szValue, "1");
|
|
else
|
|
strcpy( szValue, "0");
|
|
|
|
WritePrivateProfileString( "Start", "BinReleaseIsOk", szValue, g_szStartPrgIniFile );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetUseBinaryData
|
|
Description: Change the rights of the file to write
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetBinUseBinaryData( int iValue )
|
|
{
|
|
char szValue[2];
|
|
|
|
if (_access( g_szStartPrgIniFile, 2) == -1)
|
|
_chmod ( g_szStartPrgIniFile, _S_IWRITE );
|
|
|
|
if (iValue)
|
|
strcpy( szValue, "1");
|
|
else
|
|
strcpy( szValue, "0");
|
|
|
|
WritePrivateProfileString( "Start", "UseBinaryData", szValue, g_szStartPrgIniFile );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetGDDebugBin
|
|
Description: Change the rights of the file to write
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetGDDebugBin( char *_szPath )
|
|
{
|
|
if (_access( g_szStartPrgIniFile, 2) == -1)
|
|
_chmod ( g_szStartPrgIniFile, _S_IWRITE );
|
|
WritePrivateProfileString( "Start", "GDDebugBin", _szPath, g_szStartPrgIniFile );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetGDReleaseBin
|
|
Description: Change the rights of the file to write
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetGDReleaseBin( char *_szPath )
|
|
{
|
|
if (_access( g_szStartPrgIniFile, 2) == -1)
|
|
_chmod ( g_szStartPrgIniFile, _S_IWRITE );
|
|
WritePrivateProfileString( "Start", "GDReleaseBin", _szPath, g_szStartPrgIniFile );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetSource
|
|
Description: Change the rights of the file to write
|
|
(write the path for RawData Directory in the .ini file)
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetSource( char *_szPath )
|
|
{
|
|
if (_access( g_szIniFile, 2) == -1)
|
|
_chmod ( g_szIniFile, _S_IWRITE );
|
|
WritePrivateProfileString( "General directories", "DirNameSource", _szPath, g_szIniFile );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetDestBinR
|
|
Description: Change the rights of the file to write
|
|
(write the path for Textures Sub-directory in the .ini file)
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetDestBinRD3D( char *_szPath )
|
|
{
|
|
if (_access( g_szIniFile, 2) == -1)
|
|
_chmod ( g_szIniFile, _S_IWRITE );
|
|
WritePrivateProfileString( "General directories", "DirNameDestBinRD3D", _szPath, g_szIniFile );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetGameData
|
|
Description: Change the rights of the file to write
|
|
(write the path for Game Data Directory in the .ini file)
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetDestBinDDFX( char *_szPath )
|
|
{
|
|
if (_access( g_szIniFile, 2) == -1)
|
|
_chmod ( g_szIniFile, _S_IWRITE );
|
|
WritePrivateProfileString( "General directories", "DirNameDestBinDDFX", _szPath, g_szIniFile );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetDestBinR
|
|
Description: Change the rights of the file to write
|
|
(write the path for Textures Sub-directory in the .ini file)
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetDestBinRDFX( char *_szPath )
|
|
{
|
|
if (_access( g_szIniFile, 2) == -1)
|
|
_chmod ( g_szIniFile, _S_IWRITE );
|
|
WritePrivateProfileString( "General directories", "DirNameDestBinRDFX", _szPath, g_szIniFile );
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vGetDatasFromStartFile
|
|
Description: Get all datas saved in the .ini file
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vGetDatasFromStartFile( BOOL _bFirst )
|
|
{
|
|
|
|
if (_bFirst)
|
|
{
|
|
// GetCurrentDirectory( MAX_PATH, g_szStartPrgIniFile );
|
|
strcpy(g_szStartPrgIniFile, sInitialDir);
|
|
if (g_szStartPrgIniFile[strlen(g_szStartPrgIniFile) - 1] != '\\')
|
|
strcat( g_szStartPrgIniFile, "\\");
|
|
strcat( g_szStartPrgIniFile, C_szStartPrgIniFile );
|
|
}
|
|
|
|
if (bDebug)
|
|
GetPrivateProfileString( "Glide", "Debug", g_stDefaultData.szExeFile, g_stInitialData.szExeFile, MAX_PATH, g_szStartPrgIniFile );
|
|
else
|
|
GetPrivateProfileString( "Glide", "Release", g_stDefaultData.szExeFile, g_stInitialData.szExeFile, MAX_PATH, g_szStartPrgIniFile );
|
|
|
|
|
|
HANDLE hHandle;
|
|
WIN32_FIND_DATA stFindFileData;
|
|
|
|
memset(&stFindFileData,0,sizeof(stFindFileData));
|
|
hHandle = FindFirstFile(g_szStartPrgIniFile, &stFindFileData);
|
|
//return a boolean for telling if some files *.* exists in the directory or not
|
|
if( hHandle == INVALID_HANDLE_VALUE)
|
|
{ char _szMessage[50];
|
|
sprintf(_szMessage, "The %s file does not exist, so the datas will be taken from the Default structure!", g_szStartPrgIniFile);
|
|
bStartPrg=FALSE;
|
|
AfxMessageBox( _szMessage, MB_OK | MB_ICONSTOP );
|
|
}
|
|
FindClose(hHandle);
|
|
|
|
if (strcmp( g_stInitialData.szExeFile, g_stDefaultData.szExeFile) == 0)
|
|
strcpy( g_stInitialData.szExeFile, g_stInitialData.szTempPath8);
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vGetDatasFromFile
|
|
Description: Get all datas saved in the .ini file
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vGetDatasFromFile( BOOL _bFirst )
|
|
{
|
|
char szCompleteBinarization[10];
|
|
|
|
if (_bFirst)
|
|
{
|
|
GetCurrentDirectory( MAX_PATH, g_szIniFile );
|
|
if (g_szIniFile[strlen(g_szIniFile) - 1] != '\\')
|
|
strcat( g_szIniFile, "\\");
|
|
strcat( g_szIniFile, C_szIniFile );
|
|
/*
|
|
* set all ini data with default data
|
|
*/
|
|
memcpy( &g_stInitialData, &g_stDefaultData, sizeof( tdstInitialValue ) );
|
|
}
|
|
|
|
|
|
/*
|
|
* get the informations for name of the executable, local path, game data, rawdata, textures and default directories
|
|
*/
|
|
GetPrivateProfileString( "General directories", "DirNameDestBinDD3D", g_stDefaultData.szDestBinDD3D, g_stInitialData.szDestBinDD3D, MAX_PATH, g_szIniFile );
|
|
GetPrivateProfileString( "General directories", "DirNameSource", g_stDefaultData.szSource, g_stInitialData.szSource, MAX_PATH, g_szIniFile );
|
|
GetPrivateProfileString( "General directories", "DirNameDestBinRD3D", g_stDefaultData.szDestBinRD3D, g_stInitialData.szDestBinRD3D, MAX_PATH, g_szIniFile );
|
|
GetPrivateProfileString( "General directories", "DirNameDestBinDDFX", g_stDefaultData.szDestBinDDFX, g_stInitialData.szDestBinDDFX, MAX_PATH, g_szIniFile );
|
|
GetPrivateProfileString( "General directories", "DirNameDestBinRDFX", g_stDefaultData.szDestBinRDFX, g_stInitialData.szDestBinRDFX, MAX_PATH, g_szIniFile );
|
|
GetPrivateProfileString( "Mode", "Mode", g_stDefaultData.szMode, g_stInitialData.szMode, MAX_PATH, g_szIniFile );
|
|
GetPrivateProfileString( "Fix", "Fix", g_stDefaultData.szFix, g_stInitialData.szFix, MAX_PATH, g_szIniFile );
|
|
GetPrivateProfileString( "Mode", "CompleteBinarization", "1", szCompleteBinarization, 10, g_szIniFile );
|
|
|
|
// GetPrivateProfileString( "Executable File", "Executable File", g_stDefaultData.szExeFile, g_stInitialData.szExeFile, MAX_PATH, g_szIniFile );
|
|
|
|
/*
|
|
* set executable name, local path...
|
|
*/
|
|
HANDLE hHandle;
|
|
WIN32_FIND_DATA stFindFileData;
|
|
|
|
memset(&stFindFileData,0,sizeof(stFindFileData));
|
|
hHandle = FindFirstFile(g_szIniFile, &stFindFileData);
|
|
//return a boolean for telling if some files *.* exists in the directory or not
|
|
if( hHandle == INVALID_HANDLE_VALUE)
|
|
{ char _szMessage[50];
|
|
sprintf(_szMessage, "The %s file does not exist, so the datas will be taken from the Default structure!", g_szIniFile);
|
|
AfxMessageBox( _szMessage, MB_OK | MB_ICONSTOP );
|
|
}
|
|
FindClose(hHandle);
|
|
|
|
if (strcmp( g_stInitialData.szDestBinDD3D, g_stDefaultData.szDestBinDD3D) == 0)
|
|
strcpy( g_stInitialData.szDestBinDD3D, g_stInitialData.szTempPath1);
|
|
if (strcmp( g_stInitialData.szSource, g_stDefaultData.szSource) == 0)
|
|
strcpy( g_stInitialData.szSource, g_stInitialData.szTempPath2);
|
|
if (strcmp( g_stInitialData.szDestBinRD3D, g_stDefaultData.szDestBinRD3D) == 0)
|
|
strcpy( g_stInitialData.szDestBinRD3D, g_stInitialData.szTempPath3);
|
|
if (strcmp( g_stInitialData.szMode, g_stDefaultData.szMode) == 0)
|
|
strcpy( g_stInitialData.szMode, g_stInitialData.szTempPath4);
|
|
if (strcmp( g_stInitialData.szDestBinDDFX, g_stDefaultData.szDestBinDDFX) == 0)
|
|
strcpy( g_stInitialData.szDestBinDDFX, g_stInitialData.szTempPath5);
|
|
if (strcmp( g_stInitialData.szDestBinRDFX, g_stDefaultData.szDestBinRDFX) == 0)
|
|
strcpy( g_stInitialData.szDestBinRDFX, g_stInitialData.szTempPath6);
|
|
if (strcmp( g_stInitialData.szFix, g_stDefaultData.szFix) == 0)
|
|
strcpy( g_stInitialData.szFix, g_stInitialData.szTempPath7);
|
|
|
|
// if (strcmp( g_stInitialData.szExeFile, g_stDefaultData.szExeFile) == 0)
|
|
// strcpy( g_stInitialData.szExeFile, g_stInitialData.szTempPath8);
|
|
|
|
strcpy(szSource, g_stInitialData.szSource);
|
|
strcpy(sSource, g_stInitialData.szSource);
|
|
|
|
if (!stricmp(g_stInitialData.szMode, "Debug"))
|
|
bDebug = TRUE;
|
|
else
|
|
bDebug = FALSE;
|
|
|
|
if (!stricmp(g_stInitialData.szFix, "0"))
|
|
bFix1 = FALSE;
|
|
else
|
|
bFix1 = TRUE;
|
|
|
|
if (!stricmp(szCompleteBinarization, "0"))
|
|
bDsc = FALSE;
|
|
else
|
|
bDsc = TRUE;
|
|
/*
|
|
* Get the position and the size of the main window
|
|
*/
|
|
fn_IniData_vGetWindowPosSize();
|
|
|
|
if (!bAuto)
|
|
fn_IniData_vGetDatasFromStartFile(TRUE);
|
|
|
|
}
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetMode
|
|
Description: Set the entry in the .ini file for Version
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetMode( BOOL bSetIgnore )
|
|
{
|
|
char szValue[9];
|
|
if (_access( g_szIniFile, 2) == -1)
|
|
_chmod ( g_szIniFile, _S_IWRITE );
|
|
|
|
if (bSetIgnore)
|
|
strcpy( szValue, "Debug");
|
|
else
|
|
strcpy( szValue, "Release");
|
|
|
|
WritePrivateProfileString( "Mode", "Mode", szValue, g_szIniFile );
|
|
}
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetFix
|
|
Description: Set the entry in the .ini file for Fix
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetFix( BOOL bFix )
|
|
{
|
|
char szValue[9];
|
|
if (_access( g_szIniFile, 2) == -1)
|
|
_chmod ( g_szIniFile, _S_IWRITE );
|
|
|
|
if (bFix)
|
|
strcpy( szValue, "1");
|
|
else
|
|
strcpy( szValue, "0");
|
|
|
|
WritePrivateProfileString( "Fix", "Fix", szValue, g_szIniFile );
|
|
}
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetCompleteBinarization
|
|
Description: Change the rights of the file to write
|
|
Set the entry in the .ini file for Complete binarization (=generation of dsb files)
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetCompleteBinarization( BOOL bDsc )
|
|
{
|
|
if (_access( g_szIniFile, 2) == -1)
|
|
_chmod ( g_szIniFile, _S_IWRITE );
|
|
if( bDsc )
|
|
WritePrivateProfileString( "Mode", "CompleteBinarization", "1", g_szIniFile );
|
|
else
|
|
WritePrivateProfileString( "Mode", "CompleteBinarization", "0", g_szIniFile );
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSet3DCard
|
|
Description: Set the entry in the .ini file for Version
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSet3DCard( BOOL bSetIgnore )
|
|
{
|
|
char szValue[9];
|
|
if (_access( g_szIniFile, 2) == -1)
|
|
_chmod ( g_szIniFile, _S_IWRITE );
|
|
|
|
if (bSetIgnore)
|
|
strcpy( szValue, "D3D");
|
|
else
|
|
strcpy( szValue, "DFX");
|
|
|
|
WritePrivateProfileString( "3DCard", "3DCard", szValue, g_szIniFile );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vSetDscCreated
|
|
Description:
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vSetDscCreated(BOOL bDsc)
|
|
{
|
|
char szValue[2];
|
|
if (_access( g_szStartPrgIniFile, 2) == -1)
|
|
_chmod ( g_szStartPrgIniFile, _S_IWRITE );
|
|
|
|
if (bDsc)
|
|
strcpy( szValue, "1");
|
|
else
|
|
strcpy( szValue, "0");
|
|
|
|
WritePrivateProfileString( "Start", "DscCreated", szValue, g_szStartPrgIniFile );
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vGetWindowPosSize
|
|
Description: Get the position andd the size of the main window from the .ini file
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vGetWindowPosSize( void )
|
|
{
|
|
char szString[100];
|
|
|
|
GetPrivateProfileString( "WinPref", "Main", "", szString, 100, g_szIniFile );
|
|
fn_IniData_vStudyRect( szString, &g_stWinPosSize.stMainPos );
|
|
M_vVerifyRect( (&g_stWinPosSize.stMainPos), C_iMainWindowWidth, C_iMainWindowHeight );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vWriteWindowPosSize
|
|
Description: Save the new position and size of the main window
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vWriteWindowPosSize( void )
|
|
{
|
|
char szValue[50];
|
|
RECT *p_stRect;
|
|
|
|
if (_access( g_szIniFile, 2) == -1)
|
|
_chmod ( g_szIniFile, _S_IWRITE );
|
|
|
|
//writing the new values for the position and size of the main window
|
|
p_stRect = &g_stWinPosSize.stMainPos;
|
|
sprintf( szValue, "(%4d,%4d,%4d,%4d)", p_stRect->left, p_stRect->top, p_stRect->right, p_stRect->bottom );
|
|
WritePrivateProfileString( "WinPref", "Main ", szValue, g_szIniFile );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_IniData_vStudyRect
|
|
Description: Verify that the values are correct (can be integers)
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_IniData_vStudyRect( char *_szString, RECT *_p_stRect )
|
|
{
|
|
char *p_szValue[5], *p_szEnd;
|
|
char cVal;
|
|
|
|
//study if the values can be integers
|
|
memset( _p_stRect, 0, sizeof( RECT ) );
|
|
|
|
if ( (p_szValue[0] = strchr(_szString, '(' )) == NULL)
|
|
return;
|
|
|
|
if ( (p_szValue[1] = strchr (++p_szValue[0], ',')) == NULL)
|
|
return;
|
|
if ( (p_szValue[2] = strchr (++p_szValue[1], ',')) == NULL)
|
|
return;
|
|
if ( (p_szValue[3] = strchr (++p_szValue[2], ',')) == NULL)
|
|
return;
|
|
p_szValue[3] ++;
|
|
|
|
p_szValue[4] = _szString + strlen( _szString );
|
|
|
|
for (cVal = 0; cVal < 4; cVal ++)
|
|
{
|
|
while ( !isdigit(*p_szValue[cVal]) )
|
|
{
|
|
if (p_szValue[cVal] == p_szValue[cVal+1])
|
|
return;
|
|
p_szValue[cVal]++;
|
|
}
|
|
p_szEnd = p_szValue[cVal] + 1;
|
|
while ( isdigit(*p_szEnd))
|
|
{
|
|
if (p_szEnd == p_szValue[cVal+1])
|
|
return;
|
|
p_szEnd++;
|
|
}
|
|
*p_szEnd = 0;
|
|
}
|
|
|
|
//convert to integer the ascii values
|
|
_p_stRect->left = atoi( p_szValue[0] );
|
|
_p_stRect->top = atoi( p_szValue[1] );
|
|
_p_stRect->right = atoi( p_szValue[2] );
|
|
_p_stRect->bottom = atoi( p_szValue[3] );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_ComRes_vDeleteLines
|
|
Description: Delete all the text in the rich edir box control
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_ComRes_vDeleteLines( CRichEditCtrl *_oRichEdit)
|
|
{
|
|
//delete the content of the rich edit control (result and command)
|
|
_oRichEdit->SetWindowText( "" );
|
|
}
|
|
|
|
|
|
/*
|
|
=======================================================================================
|
|
Name: fn_ComRes_vWriteLine
|
|
Description: Write a line in a rich edit
|
|
Author: Mihaela Tancu
|
|
=======================================================================================
|
|
*/
|
|
void fn_ComRes_vWriteLine( char *szLine, char cLineType ,CRichEditCtrl* _oRichEdit,
|
|
CHARFORMAT* _stCharFormat)
|
|
{
|
|
long lOldLength;
|
|
long lNewLength;
|
|
long lSize;
|
|
|
|
_stCharFormat->crTextColor = gs_a_xLineColor[ cLineType ];
|
|
_stCharFormat->dwEffects = 0;
|
|
|
|
// write a line in the rich edit control
|
|
// with different color (red or black) for Ok or for Error
|
|
lOldLength = _oRichEdit->GetTextLength();
|
|
lNewLength = lOldLength + strlen( szLine );
|
|
lSize = _oRichEdit->GetLimitText();
|
|
if (lNewLength > lSize)
|
|
{
|
|
lSize += 10000;
|
|
_oRichEdit->LimitText( lSize );
|
|
}
|
|
_oRichEdit->ReplaceSel( szLine );
|
|
|
|
_oRichEdit->SetSel( lOldLength, -1 );
|
|
_oRichEdit->SetSelectionCharFormat( *_stCharFormat );
|
|
_oRichEdit->SetSel( lNewLength, lNewLength );
|
|
_oRichEdit->RedrawWindow(NULL,NULL, RDW_INVALIDATE |RDW_FRAME| RDW_UPDATENOW );
|
|
}
|
|
|
|
|
|
|
|
|