2481 lines
80 KiB
C++
2481 lines
80 KiB
C++
/*=========================================================================
|
|
*
|
|
* DlgMain.cpp - implementation file for main window class
|
|
* Main dialog functions
|
|
*
|
|
* Version 1.0
|
|
* Revision date
|
|
*
|
|
*=======================================================================*/
|
|
#include <io.h>
|
|
#include <sys/stat.h>
|
|
#include <fcntl.h>
|
|
#include "stdafx.h"
|
|
|
|
#include "DlgMain.h"
|
|
|
|
#include "print.h"
|
|
#include "main.h"
|
|
#include "system.h"
|
|
|
|
#include "DlgAbout.h"
|
|
|
|
#include "IniData.h"
|
|
#include "Help.h"
|
|
|
|
|
|
//--- Global statics --------------------------------------------------------
|
|
|
|
// multitextures
|
|
BOOL g_bLevelConversion = FALSE;
|
|
BOOL g_bBankConversion = FALSE;
|
|
BOOL g_bClassConversion = FALSE;
|
|
|
|
int gs_iIndex;
|
|
|
|
char g_szInitialDirectory[_MAX_PATH];
|
|
|
|
int g_iNbConfDirs;
|
|
char g_szConfDirs[20][20];
|
|
|
|
int g_iNbConfOptions;
|
|
char g_szConfOptions[20][20];
|
|
|
|
int g_iNbConfSelects;
|
|
char g_szConfSelects[20][20];
|
|
|
|
char g_szAnimsObj[25][256];
|
|
char g_szBanksObj[25][256];
|
|
char g_szClassesObj[25][256];
|
|
char g_szFamiliesObj[25][256];
|
|
char g_szLevelsObj[25][256];
|
|
char g_szTexturesObj[25][256];
|
|
|
|
int g_iNbAnimsObj;
|
|
int g_iNbBanksObj;
|
|
int g_iNbClassesObj;
|
|
int g_iNbFamiliesObj;
|
|
int g_iNbLevelsObj;
|
|
int g_iNbTexturesObj;
|
|
|
|
BOOL g_bChangeComboDir = FALSE;
|
|
int g_iCurrentIndexDir = 0;
|
|
|
|
BOOL g_bChangeComboOption = FALSE;
|
|
int g_iCurrentIndexOption = 0;
|
|
|
|
BOOL g_bChangeComboSelect = FALSE;
|
|
int g_iCurrentIndexSelect = 0;
|
|
|
|
char g_szDirConfig[256];
|
|
char g_szSelectConfig[256];
|
|
char g_szOptionConfig[256];
|
|
|
|
char g_szRayman2[_MAX_PATH];
|
|
char g_szModifLst[_MAX_PATH];
|
|
char g_szEraseMdf[_MAX_PATH];
|
|
char g_szIgnoreZoo[_MAX_PATH];
|
|
char g_szIgnoreSct[_MAX_PATH];
|
|
char g_szIgnoreSpo[_MAX_PATH];
|
|
char g_szIgnoreGmt[_MAX_PATH];
|
|
char g_szIgnoreVmt[_MAX_PATH];
|
|
char g_szCopyAnims[_MAX_PATH];
|
|
char g_szCopyTextures[_MAX_PATH];
|
|
char g_szGenerateRLI[_MAX_PATH];
|
|
char g_szUpdateGameDSC[_MAX_PATH];
|
|
char g_szEraseDuplicated[_MAX_PATH];
|
|
char g_szEraseUnused[_MAX_PATH];
|
|
char g_szForceCommon[_MAX_PATH];
|
|
char g_szForceSpecific[_MAX_PATH];
|
|
char g_szCreateBasicFamily[_MAX_PATH];
|
|
|
|
//--- Global functions --------------------------------------------------------
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: set the data for the GameDataPC directory
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void MLT_vSetDataSpecific1()
|
|
{
|
|
sprintf(g_sRawData, "%s", g_sRawData);
|
|
SetCurrentDirectory(g_sGameSpecific1);
|
|
|
|
// Create sub directories of GameSpecific1
|
|
CreateDirectory("World", NULL);
|
|
CreateDirectory("World\\Graphics", NULL);
|
|
CreateDirectory("World\\Graphics\\Anims", NULL);
|
|
CreateDirectory("World\\Graphics\\Textures", NULL);
|
|
CreateDirectory("World\\Graphics\\Objects", NULL);
|
|
CreateDirectory("World\\Graphics\\Objects\\Classes", NULL);
|
|
CreateDirectory("World\\Graphics\\Objects\\Banks", NULL);
|
|
CreateDirectory("World\\Graphics\\Visuals", NULL);
|
|
CreateDirectory("World\\Libraries", NULL);
|
|
CreateDirectory("World\\Libraries\\Materials", NULL);
|
|
CreateDirectory("World\\Levels", NULL);
|
|
CreateDirectory("World\\Levels\\_Common", NULL);
|
|
CreateDirectory("World\\Levels\\_Common\\Families", NULL);
|
|
|
|
// set the materials and textures directory
|
|
sprintf(g_sGameTextureDirectory, "%s\\World\\Graphics\\Textures", g_sGameSpecific1);
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: set the data for the GameDataN64 directory
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void MLT_vSetDataSpecific2()
|
|
{
|
|
sprintf(g_sRawData, "%s", g_sRawData);
|
|
SetCurrentDirectory(g_sGameSpecific2);
|
|
|
|
// Create sub directories of GameSpecific2
|
|
CreateDirectory("World", NULL);
|
|
CreateDirectory("World\\Graphics", NULL);
|
|
CreateDirectory("World\\Graphics\\Anims", NULL);
|
|
CreateDirectory("World\\Graphics\\Textures", NULL);
|
|
CreateDirectory("World\\Graphics\\Objects", NULL);
|
|
CreateDirectory("World\\Graphics\\Objects\\Classes", NULL);
|
|
CreateDirectory("World\\Graphics\\Objects\\Banks", NULL);
|
|
CreateDirectory("World\\Graphics\\Visuals", NULL);
|
|
CreateDirectory("World\\Libraries", NULL);
|
|
CreateDirectory("World\\Libraries\\Materials", NULL);
|
|
CreateDirectory("World\\Levels", NULL);
|
|
CreateDirectory("World\\Levels\\_Common", NULL);
|
|
CreateDirectory("World\\Levels\\_Common\\Families", NULL);
|
|
|
|
// set the materials and textures directory
|
|
sprintf(g_sGameTextureDirectory, "%s\\World\\Graphics\\Textures", g_sGameSpecific2);
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: command function for richedit control
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK Command(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if(msg == WM_LBUTTONDBLCLK)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
gs_iIndex = edit->m_oRichEditCom.LineFromChar(edit->m_oRichEditCom.LineIndex(-1));
|
|
|
|
int iCurrentLine = edit->m_oRichEditRes.GetFirstVisibleLine();
|
|
int iNewLine = edit->m_oRichEditRes.LineFromChar(g_iResultIndex[g_iCommandIndex[gs_iIndex]]);
|
|
|
|
edit->m_oRichEditRes.LineScroll(iNewLine - iCurrentLine);
|
|
edit->m_iInd = gs_iIndex;
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
|
|
BOOL g_sBool = TRUE;
|
|
/****************************************************************************
|
|
* Description: command function for rawspecific1 edit button
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK CommandRawSp1(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{
|
|
char szName[20];
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if(msg == WM_CHAR)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
if (wp == 13) //return
|
|
{
|
|
edit->m_oEditRawSp1.GetWindowText(szName, 14);
|
|
if (strcmp(szName, ""))
|
|
{ fn_IniData_vSetRawSp1(szName);
|
|
strcpy(g_stInitialData.szRawSp1, szName);
|
|
}
|
|
}
|
|
if (wp == 27) //escape
|
|
{ edit->m_oEditRawSp1.SetWindowText(g_stInitialData.szRawSp1);
|
|
strcpy(szName, "");
|
|
}
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: command function for rawspecific2 edit button
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK CommandRawSp2(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{ char szName[20];
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if(msg == WM_CHAR)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
if (wp == 13) //return
|
|
{ edit->m_oEditRawSp2.GetWindowText(szName, 14);
|
|
if (strcmp(szName, ""))
|
|
{ fn_IniData_vSetRawSp2(szName);
|
|
strcpy(g_stInitialData.szRawSp2, szName);
|
|
}
|
|
}
|
|
if (wp == 27) //escape
|
|
{ edit->m_oEditRawSp2.SetWindowText(g_stInitialData.szRawSp2);
|
|
strcpy(szName, "");
|
|
}
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: command function for gamespecific1 edit button
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK CommandGameSp1(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{ char szName[20];
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if(msg == WM_CHAR)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
if (wp == 13) //return
|
|
{ edit->m_oEditGameSp1.GetWindowText(szName, 14);
|
|
if (strcmp(szName, ""))
|
|
{ fn_IniData_vSetGameSp1(szName);
|
|
strcpy(g_stInitialData.szGameSp1, szName);
|
|
}
|
|
}
|
|
if (wp == 27) //escape
|
|
{ edit->m_oEditGameSp1.SetWindowText(g_stInitialData.szGameSp1);
|
|
strcpy(szName, "");
|
|
}
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: command function for gamespecific2 edit button
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK CommandGameSp2(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{ char szName[20];
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if(msg == WM_CHAR)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
if (wp == 13) //return
|
|
{ edit->m_oEditGameSp2.GetWindowText(szName, 14);
|
|
if (strcmp(szName, ""))
|
|
{ fn_IniData_vSetGameSp2(szName);
|
|
strcpy(g_stInitialData.szGameSp2, szName);
|
|
}
|
|
}
|
|
if (wp == 27) //escape
|
|
{ edit->m_oEditGameSp2.SetWindowText(g_stInitialData.szGameSp2);
|
|
strcpy(szName, "");
|
|
}
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
|
|
/****************************************************************************
|
|
* Description: command function for register configuration for the first panel
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK CommandRegisterDir(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{
|
|
char szName[20];
|
|
//int i;
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if(msg == WM_CHAR)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
if (wp == 27) //escape
|
|
{
|
|
edit->m_oEditRegisterDir.SetWindowText("");
|
|
strcpy(szName, "");
|
|
edit->m_oEditRegisterDir.ShowWindow(FALSE);
|
|
edit->m_oButtonRegisterDir.ShowWindow(TRUE);
|
|
}
|
|
if (wp == 13) //return
|
|
{
|
|
strcpy(szName, "");
|
|
edit->m_oEditRegisterDir.GetWindowText(szName, 14);
|
|
edit->m_oEditRegisterDir.ShowWindow(FALSE);
|
|
}
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
/****************************************************************************
|
|
* Description: command function for create configuration for the first panel
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK CommandCreateDir(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{
|
|
char szName[20];
|
|
//int i;
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if(msg == WM_CHAR)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
if (wp == 27) //escape
|
|
{
|
|
edit->m_oEditCreateDir.SetWindowText("");
|
|
strcpy(szName, "");
|
|
edit->m_oEditCreateDir.ShowWindow(FALSE);
|
|
edit->m_oButtonCreateDir.ShowWindow(TRUE);
|
|
}
|
|
if (wp == 13) //return
|
|
{
|
|
strcpy(szName, "");
|
|
edit->m_oEditCreateDir.GetWindowText(szName, 14);
|
|
edit->m_oEditCreateDir.ShowWindow(FALSE);
|
|
}
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: command function for renaming configuration for the first panel
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK CommandRenameDir(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{ char szName[20];
|
|
FILE *fileR, *fileW;
|
|
xString szFind, sRead, szOld;
|
|
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if (msg == WM_CHAR)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
if (wp == 27) //escape
|
|
{
|
|
edit->m_oComboChooseDir.SetCurSel(g_iCurrentIndexDir);
|
|
edit->m_oComboChooseDir.SetWindowText( g_szConfDirs[g_iCurrentIndexDir]);
|
|
strcpy(szName, "");
|
|
}
|
|
if (wp == 13) //return
|
|
{
|
|
strcpy(szName, "");
|
|
strcpy(szOld, "");
|
|
edit->m_oComboChooseDir.GetLBText( g_iCurrentIndexDir, szOld );
|
|
edit->m_oComboChooseDir.GetWindowText( szName, 25 );
|
|
if (!strcmp(szName, szOld))
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
|
|
if (strcmp(szName, ""))
|
|
{
|
|
xString szPath;
|
|
int j1 = edit->m_oComboChooseDir.FindStringExact( -1, szName);
|
|
if (j1 != CB_ERR)
|
|
{
|
|
AfxMessageBox( "The configuration already exists or you gave the same name for it. Please select another name!", MB_OK | MB_ICONSTOP );
|
|
edit->m_oComboChooseDir.SetCurSel(g_iCurrentIndexDir);
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
|
|
if (g_iCurrentIndexDir)
|
|
{
|
|
if (g_iCurrentIndexDir != -1)
|
|
edit->m_oComboChooseDir.DeleteString(g_iCurrentIndexDir);
|
|
edit->m_oComboChooseDir.InsertString(g_iCurrentIndexDir, szName);
|
|
edit->m_oComboChooseDir.SetCurSel(g_iCurrentIndexDir);
|
|
strcpy(g_szConfDirs[g_iCurrentIndexDir], szName);
|
|
|
|
//delete the section with the previous name from the Configs.ini file
|
|
fileR = fopen (g_szIniConfDirFile, "r");
|
|
fileW = fopen ("New.ini", "w");
|
|
|
|
strcpy(szFind, "[");
|
|
strcat(szFind, szOld);
|
|
strcat(szFind, "]\n");
|
|
while (fgets(sRead, 256, fileR)!=NULL) //
|
|
if (!stricmp(sRead, szFind))
|
|
break;
|
|
else
|
|
fputs( sRead, fileW);
|
|
|
|
fputs("[", fileW);
|
|
fputs(szName, fileW);
|
|
fputs("]\n", fileW);
|
|
while (!feof(fileR))
|
|
{
|
|
fgets(sRead, 256, fileR);
|
|
if (!feof(fileR)) fputs( sRead, fileW);
|
|
}
|
|
fclose(fileR);
|
|
fclose(fileW);
|
|
remove(g_szIniConfDirFile);
|
|
MoveFile("New.ini", g_szIniConfDirFile);
|
|
}
|
|
else
|
|
{
|
|
edit->m_oComboChooseDir.AddString(szName);
|
|
edit->m_oComboChooseDir.SetCurSel(edit->m_oComboChooseDir.GetCount() - 1);
|
|
g_iCurrentIndexDir = edit->m_oComboChooseDir.GetCount() - 1;
|
|
g_iNbConfDirs++;
|
|
strcpy(g_szConfDirs[g_iNbConfDirs-1], szName);
|
|
edit->m_oButtonSaveDir.EnableWindow(g_iCurrentIndexDir);
|
|
edit->m_oButtonDeleteDir.EnableWindow(g_iCurrentIndexDir);
|
|
}
|
|
|
|
strcpy(szPath, "");
|
|
|
|
for (int j=1; j<g_iNbConfDirs-1; j++)
|
|
{
|
|
strcat(szPath, g_szConfDirs[j]);
|
|
strcat(szPath, ",");
|
|
}
|
|
if (g_iNbConfDirs) //!!!
|
|
strcat(szPath, g_szConfDirs[g_iNbConfDirs-1]);
|
|
fn_IniData_vSetConfigDirNames( szPath );
|
|
|
|
|
|
//add the new name section in the .ini file
|
|
edit->m_fn_vRegisterAllPaths(g_iCurrentIndexDir);
|
|
}
|
|
}
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: command function for register configuration for the second panel button
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK CommandRegisterOption(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{ char szName[20];
|
|
//int i;
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if(msg == WM_CHAR)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
if (wp == 27) //escape
|
|
{
|
|
edit->m_oEditRegisterOption.SetWindowText("");
|
|
strcpy(szName, "");
|
|
edit->m_oEditRegisterOption.ShowWindow(FALSE);
|
|
edit->m_oButtonRegisterOption.ShowWindow(TRUE);
|
|
}
|
|
if (wp == 13) //return
|
|
{
|
|
strcpy(szName, "");
|
|
edit->m_oEditRegisterOption.GetWindowText(szName, 14);
|
|
edit->m_oEditRegisterOption.ShowWindow(FALSE);
|
|
}
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
|
|
/****************************************************************************
|
|
* Description: command function for create configuration for the second panel button
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK CommandCreateOption(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{ char szName[20];
|
|
//int i;
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if(msg == WM_CHAR)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
if (wp == 27) //escape
|
|
{
|
|
edit->m_oEditCreateOption.SetWindowText("");
|
|
strcpy(szName, "");
|
|
edit->m_oEditCreateOption.ShowWindow(FALSE);
|
|
edit->m_oButtonCreateOption.ShowWindow(TRUE);
|
|
}
|
|
if (wp == 13) //return
|
|
{
|
|
strcpy(szName, "");
|
|
edit->m_oEditCreateOption.GetWindowText(szName, 14);
|
|
edit->m_oEditCreateOption.ShowWindow(FALSE);
|
|
}
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: command function for renaming configuration for the second panel
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK CommandRenameOption(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{ char szName[20];
|
|
FILE *fileR, *fileW;
|
|
xString szFind, sRead, szOld;
|
|
int i1;
|
|
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if (msg == WM_CHAR)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
if (wp == 27) //escape
|
|
{
|
|
edit->m_oComboChooseOption.SetCurSel(g_iCurrentIndexOption);
|
|
edit->m_oComboChooseOption.SetWindowText( g_szConfOptions[g_iCurrentIndexOption]);
|
|
strcpy(szName, "");
|
|
}
|
|
if (wp == 13) //return
|
|
{
|
|
strcpy(szName, "");
|
|
strcpy(szOld, "");
|
|
edit->m_oComboChooseOption.GetLBText( g_iCurrentIndexOption, szOld );
|
|
edit->m_oComboChooseOption.GetWindowText( szName, 25 );
|
|
if (!strcmp(szName, szOld))
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
|
|
if (strcmp(szName, ""))
|
|
{
|
|
xString szPath;
|
|
int j1 = edit->m_oComboChooseOption.FindStringExact( -1, szName);
|
|
if (j1 != CB_ERR)
|
|
{
|
|
AfxMessageBox( "The configuration already exists or you gave the same name for it. Please select another name!", MB_OK | MB_ICONSTOP );
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
i1 = g_iCurrentIndexOption;
|
|
|
|
if (i1)
|
|
{
|
|
if (i1 != -1)
|
|
edit->m_oComboChooseOption.DeleteString(i1);
|
|
edit->m_oComboChooseOption.InsertString(i1, szName);
|
|
edit->m_oComboChooseOption.SetCurSel(i1);
|
|
strcpy(g_szConfOptions[i1], szName);
|
|
|
|
//delete the section with the previous name from the Configs.ini file
|
|
fileR = fopen (g_szIniConfOptionFile, "r");
|
|
fileW = fopen ("New.ini", "w");
|
|
|
|
strcpy(szFind, "[");
|
|
strcat(szFind, szOld);
|
|
strcat(szFind, "]\n");
|
|
while (fgets(sRead, 256, fileR)!=NULL) //
|
|
if (!stricmp(sRead, szFind))
|
|
break;
|
|
else
|
|
fputs( sRead, fileW);
|
|
|
|
fputs("[", fileW);
|
|
fputs(szName, fileW);
|
|
fputs("]\n", fileW);
|
|
|
|
while (!feof(fileR))
|
|
{ fgets(sRead, 256, fileR);
|
|
if (!feof(fileR)) fputs( sRead, fileW);
|
|
}
|
|
|
|
fclose(fileR);
|
|
fclose(fileW);
|
|
remove(g_szIniConfOptionFile);
|
|
MoveFile("New.ini", g_szIniConfOptionFile);
|
|
}
|
|
else
|
|
{
|
|
edit->m_oComboChooseOption.AddString(szName);
|
|
edit->m_oComboChooseOption.SetCurSel(edit->m_oComboChooseOption.GetCount() - 1);
|
|
g_iCurrentIndexOption = edit->m_oComboChooseOption.GetCount() - 1;
|
|
g_iNbConfOptions++;
|
|
strcpy(g_szConfOptions[g_iNbConfOptions-1], szName);
|
|
edit->m_oButtonSaveOption.EnableWindow(g_iCurrentIndexOption);
|
|
edit->m_oButtonDeleteOption.EnableWindow(g_iCurrentIndexOption);
|
|
}
|
|
|
|
strcpy(szPath, "");
|
|
|
|
for (int j=1; j<g_iNbConfOptions-1; j++)
|
|
{
|
|
strcat(szPath, g_szConfOptions[j]);
|
|
strcat(szPath, ",");
|
|
}
|
|
if (g_iNbConfOptions) //!!!
|
|
strcat(szPath, g_szConfOptions[g_iNbConfOptions-1]);
|
|
fn_IniData_vSetOptionConfigNames( szPath );
|
|
//add the new name section in the .ini file
|
|
edit->m_fn_vRegisterAllOptions(i1);
|
|
}
|
|
}
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
|
|
/****************************************************************************
|
|
* Description: command function for register configuration for the second panel button
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK CommandRegisterSelect(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{ char szName[20];
|
|
//int i;
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if(msg == WM_CHAR)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
if (wp == 27) //escape
|
|
{
|
|
edit->m_oEditRegisterSelect.SetWindowText("");
|
|
strcpy(szName, "");
|
|
edit->m_oEditRegisterSelect.ShowWindow(FALSE);
|
|
edit->m_oButtonRegisterSelect.ShowWindow(TRUE);
|
|
}
|
|
if (wp == 13) //return
|
|
{
|
|
strcpy(szName, "");
|
|
edit->m_oEditRegisterSelect.GetWindowText(szName, 14);
|
|
edit->m_oEditRegisterSelect.ShowWindow(FALSE);
|
|
}
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
|
|
/****************************************************************************
|
|
* Description: command function for create configuration for the second panel button
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK CommandCreateSelect(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{ char szName[20];
|
|
//int i;
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if(msg == WM_CHAR)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
if (wp == 27) //escape
|
|
{
|
|
edit->m_oEditCreateSelect.SetWindowText("");
|
|
strcpy(szName, "");
|
|
edit->m_oEditCreateSelect.ShowWindow(FALSE);
|
|
edit->m_oButtonCreateSelect.ShowWindow(TRUE);
|
|
}
|
|
if (wp == 13) //return
|
|
{
|
|
strcpy(szName, "");
|
|
edit->m_oEditCreateSelect.GetWindowText(szName, 14);
|
|
edit->m_oEditCreateSelect.ShowWindow(FALSE);
|
|
}
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: command function for renaming configuration for the second panel
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
LRESULT CALLBACK CommandRenameSelect(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
|
|
{ char szName[20];
|
|
FILE *fileR, *fileW;
|
|
xString szFind, sRead, szOld;
|
|
int i1;
|
|
|
|
WNDPROC oldproc = (WNDPROC)GetProp(hwnd, "wproc");
|
|
if (msg == WM_CHAR)
|
|
{
|
|
CDlgMain* edit = (CDlgMain *)GetProp(hwnd, "class");
|
|
if (wp == 27) //escape
|
|
{
|
|
edit->m_oComboChooseSelect.SetCurSel(g_iCurrentIndexSelect);
|
|
edit->m_oComboChooseSelect.SetWindowText( g_szConfSelects[g_iCurrentIndexSelect]);
|
|
strcpy(szName, "");
|
|
}
|
|
if (wp == 13) //return
|
|
{
|
|
strcpy(szName, "");
|
|
strcpy(szOld, "");
|
|
edit->m_oComboChooseSelect.GetLBText( g_iCurrentIndexSelect, szOld );
|
|
edit->m_oComboChooseSelect.GetWindowText( szName, 25 );
|
|
if (!strcmp(szName, szOld))
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
|
|
if (strcmp(szName, ""))
|
|
{
|
|
xString szPath;
|
|
int j1 = edit->m_oComboChooseSelect.FindStringExact( -1, szName);
|
|
if (j1 != CB_ERR)
|
|
{
|
|
AfxMessageBox( "The configuration already exists or you gave the same name for it. Please select another name!", MB_OK | MB_ICONSTOP );
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
i1 = g_iCurrentIndexSelect;
|
|
|
|
if (i1)
|
|
{
|
|
if (i1 != -1)
|
|
edit->m_oComboChooseSelect.DeleteString(i1);
|
|
edit->m_oComboChooseSelect.InsertString(i1, szName);
|
|
edit->m_oComboChooseSelect.SetCurSel(i1);
|
|
strcpy(g_szConfSelects[i1], szName);
|
|
|
|
//delete the section with the previous name from the Configs.ini file
|
|
fileR = fopen (g_szIniConfSelectFile, "r");
|
|
fileW = fopen ("New.ini", "w");
|
|
|
|
strcpy(szFind, "[");
|
|
strcat(szFind, szOld);
|
|
strcat(szFind, "]\n");
|
|
while (fgets(sRead, 256, fileR)!=NULL) //
|
|
if (!stricmp(sRead, szFind))
|
|
break;
|
|
else
|
|
fputs( sRead, fileW);
|
|
|
|
fputs("[", fileW);
|
|
fputs(szName, fileW);
|
|
fputs("]\n", fileW);
|
|
|
|
while (!feof(fileR))
|
|
{ fgets(sRead, 256, fileR);
|
|
if (!feof(fileR)) fputs( sRead, fileW);
|
|
}
|
|
|
|
fclose(fileR);
|
|
fclose(fileW);
|
|
remove(g_szIniConfSelectFile);
|
|
MoveFile("New.ini", g_szIniConfSelectFile);
|
|
}
|
|
else
|
|
{
|
|
edit->m_oComboChooseSelect.AddString(szName);
|
|
edit->m_oComboChooseSelect.SetCurSel(edit->m_oComboChooseSelect.GetCount() - 1);
|
|
g_iCurrentIndexSelect = edit->m_oComboChooseSelect.GetCount() - 1;
|
|
g_iNbConfSelects++;
|
|
strcpy(g_szConfSelects[g_iNbConfSelects-1], szName);
|
|
edit->m_oButtonSaveSelect.EnableWindow(g_iCurrentIndexSelect);
|
|
edit->m_oButtonDeleteSelect.EnableWindow(g_iCurrentIndexSelect);
|
|
}
|
|
|
|
strcpy(szPath, "");
|
|
|
|
for (int j=1; j<g_iNbConfSelects-1; j++)
|
|
{
|
|
strcat(szPath, g_szConfSelects[j]);
|
|
strcat(szPath, ",");
|
|
}
|
|
if (g_iNbConfSelects) //!!!
|
|
strcat(szPath, g_szConfSelects[g_iNbConfSelects-1]);
|
|
fn_IniData_vSetSelectConfigNames( szPath );
|
|
|
|
//add the new name section in the .ini file
|
|
edit->m_fn_vRegisterSelections(i1);
|
|
}
|
|
}
|
|
}
|
|
return CallWindowProc(oldproc, hwnd, msg, wp, lp);
|
|
}
|
|
//--------------------------------------------------------------------
|
|
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: constructor
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
CDlgMain::CDlgMain(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CDlgMain::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CDlgMain)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
|
|
//}}AFX_DATA_INIT
|
|
|
|
// initialize the values for the controls
|
|
|
|
// FIRST PANEL
|
|
|
|
m_a_uiGroupButtons[0] = IDC_GROUP_SOURCEDIRECTORIES;
|
|
m_a_uiGroupButtons[1] = IDC_GROUP_DESTDIRECTORIES;
|
|
m_a_uiGroupButtons[2] = IDC_GROUP_MAINOPTIONS;
|
|
m_cNbGroupButtons = 3;
|
|
|
|
m_a_uiEditControls[0] = IDC_EDIT_RAWDATA;
|
|
m_a_uiEditControls[1] = IDC_EDIT_RAWSPECIFIC1;
|
|
m_a_uiEditControls[2] = IDC_EDIT_RAWSPECIFIC2;
|
|
m_a_uiEditControls[3] = IDC_EDIT_GAMEDATA;
|
|
m_a_uiEditControls[4] = IDC_EDIT_GAMESPECIFIC1;
|
|
m_a_uiEditControls[5] = IDC_EDIT_GAMESPECIFIC2;
|
|
m_cNbEditControls = 6;
|
|
|
|
m_a_uiEditNameControls[0] = IDC_EDIT_RAWSP1;
|
|
m_a_uiEditNameControls[1] = IDC_EDIT_RAWSP2;
|
|
m_a_uiEditNameControls[2] = IDC_EDIT_GAMESP1;
|
|
m_a_uiEditNameControls[3] = IDC_EDIT_GAMESP2;
|
|
m_cNbEditNameControls = 4;
|
|
|
|
m_a_uiBrowseButtons[0] = IDC_BROWSE_RAWDATA;
|
|
m_a_uiBrowseButtons[1] = IDC_BROWSE_RAWSPECIFIC1;
|
|
m_a_uiBrowseButtons[2] = IDC_BROWSE_RAWSPECIFIC2;
|
|
m_a_uiBrowseButtons[3] = IDC_BROWSE_GAMEDATA;
|
|
m_a_uiBrowseButtons[4] = IDC_BROWSE_GAMESPECIFIC1;
|
|
m_a_uiBrowseButtons[5] = IDC_BROWSE_GAMESPECIFIC2;
|
|
m_a_uiBrowseButtons[6] = IDC_BROWSE_ANIMS;
|
|
m_a_uiBrowseButtons[7] = IDC_BROWSE_BANKS;
|
|
m_a_uiBrowseButtons[8] = IDC_BROWSE_CLASSES;
|
|
m_a_uiBrowseButtons[9] = IDC_BROWSE_FAMILIES;
|
|
m_a_uiBrowseButtons[10] = IDC_BROWSE_LEVELS;
|
|
m_a_uiBrowseButtons[11] = IDC_BROWSE_TEXTURES;
|
|
m_cNbBrowseButtons = 12;
|
|
|
|
m_a_uiCustomConfigControls[0] = IDC_BUTTON_REGISTERCONFIGDIR;
|
|
m_a_uiCustomConfigControls[1] = IDC_COMBO_CONFIGDIR;
|
|
m_a_uiCustomConfigControls[2] = IDC_BUTTON_CREATECONFIGDIR;
|
|
m_a_uiCustomConfigControls[3] = IDC_BUTTON_SAVECONFIGDIR;
|
|
m_a_uiCustomConfigControls[4] = IDC_BUTTON_DELETECONFIGDIR;
|
|
m_cNbCustomConfigControls = 5;
|
|
|
|
m_a_uiCustomStaticControls[0] = IDC_STATIC_ANIMS;
|
|
m_a_uiCustomStaticControls[1] = IDC_STATIC_BANKS;
|
|
m_a_uiCustomStaticControls[2] = IDC_STATIC_CLASSES;
|
|
m_a_uiCustomStaticControls[3] = IDC_STATIC_FAMILIES;
|
|
m_a_uiCustomStaticControls[4] = IDC_STATIC_LEVELS;
|
|
m_a_uiCustomStaticControls[5] = IDC_STATIC_TEXTURES;
|
|
m_cNbCustomStaticControls = 6;
|
|
|
|
m_a_uiCustomEditControls[0] = IDC_EDIT_ANIMS;
|
|
m_a_uiCustomEditControls[1] = IDC_EDIT_BANKS;
|
|
m_a_uiCustomEditControls[2] = IDC_EDIT_CLASSES;
|
|
m_a_uiCustomEditControls[3] = IDC_EDIT_FAMILIES;
|
|
m_a_uiCustomEditControls[4] = IDC_EDIT_LEVELS;
|
|
m_a_uiCustomEditControls[5] = IDC_EDIT_TEXTURES;
|
|
m_cNbCustomEditControls = 6;
|
|
|
|
m_a_uiMainButtons[0] = IDC_CHECK_RAYMAN2;
|
|
m_a_uiMainButtons[1] = IDC_CHECK_MODIFLST;
|
|
m_a_uiMainButtons[2] = IDC_CHECK_ERASEMOD;
|
|
m_cNbMainButtons = 3;
|
|
|
|
// SECOND PANEL
|
|
|
|
m_a_uiSelectButtons[0] = IDC_BUTTON_SELECTALL;
|
|
m_a_uiSelectButtons[1] = IDC_BUTTON_SELECTLIST;
|
|
m_cNbSelectButtons = 2;
|
|
|
|
m_a_uiClearButtons[0] = IDC_BUTTON_CLEARALL;
|
|
m_a_uiClearButtons[1] = IDC_BUTTON_CLEARLIST;
|
|
m_cNbClearButtons = 2;
|
|
|
|
m_a_uiSelectConfigButtons[0] = IDC_BUTTON_REGISTERCONFIGSELECT;
|
|
m_a_uiSelectConfigButtons[1] = IDC_COMBO_CONFIGSELECT;
|
|
m_a_uiSelectConfigButtons[2] = IDC_BUTTON_CREATECONFIGSELECT;
|
|
m_a_uiSelectConfigButtons[3] = IDC_BUTTON_SAVECONFIGSELECT;
|
|
m_a_uiSelectConfigButtons[4] = IDC_BUTTON_DELETECONFIGSELECT;
|
|
m_cNbSelectConfigButtons = 5;
|
|
|
|
m_a_uiConflictStaticButtons[0] = IDC_STATIC_ZOO;
|
|
m_a_uiConflictStaticButtons[1] = IDC_STATIC_SCT;
|
|
m_a_uiConflictStaticButtons[2] = IDC_STATIC_SPO;
|
|
m_a_uiConflictStaticButtons[3] = IDC_STATIC_GMT;
|
|
m_a_uiConflictStaticButtons[4] = IDC_STATIC_VMT;
|
|
m_cNbConflictStaticButtons = 5;
|
|
|
|
m_a_uiConflictMaxButtons[0] = IDC_CHECK_ZOO_MAX;
|
|
m_a_uiConflictMaxButtons[1] = IDC_CHECK_SCT_MAX;
|
|
m_a_uiConflictMaxButtons[2] = IDC_CHECK_SPO_MAX;
|
|
m_a_uiConflictMaxButtons[3] = IDC_CHECK_GMT_MAX;
|
|
m_a_uiConflictMaxButtons[4] = IDC_CHECK_VMT_MAX;
|
|
m_cNbConflictMaxButtons = 5;
|
|
|
|
m_a_uiConflictEdsButtons[0] = IDC_CHECK_ZOO_EDS;
|
|
m_a_uiConflictEdsButtons[1] = IDC_CHECK_SCT_EDS;
|
|
m_a_uiConflictEdsButtons[2] = IDC_CHECK_SPO_EDS;
|
|
m_a_uiConflictEdsButtons[3] = IDC_CHECK_GMT_EDS;
|
|
m_a_uiConflictEdsButtons[4] = IDC_CHECK_VMT_EDS;
|
|
m_cNbConflictEdsButtons = 5;
|
|
|
|
m_a_uiOptionButtons[0] = IDC_CHECK_COPYTEXTURES;
|
|
m_a_uiOptionButtons[1] = IDC_CHECK_COPYANIMS;
|
|
m_a_uiOptionButtons[2] = IDC_CHECK_GENERATERLI;
|
|
m_a_uiOptionButtons[3] = IDC_CHECK_UPDATEGAMEDSC;
|
|
m_a_uiOptionButtons[4] = IDC_CHECK_BASICFAMILY;
|
|
m_cNbOptionButtons = 5;
|
|
|
|
m_a_uiEraseButtons[0] = IDC_CHECK_ERASEDUPLICATED;
|
|
m_a_uiEraseButtons[1] = IDC_CHECK_ERASEUNUSED;
|
|
m_cNbEraseButtons = 2;
|
|
|
|
m_a_uiFamilyButtons[0] = IDC_CHECK_FORCECOMMON;
|
|
m_a_uiFamilyButtons[1] = IDC_CHECK_FORCESPECIFIC;
|
|
m_a_uiFamilyButtons[2] = IDC_CHECK_ASKFAMILY;
|
|
m_cNbFamilyButtons = 3;
|
|
|
|
m_a_uiOptionConfig[0] = IDC_BUTTON_REGISTERCONFIGOPTION;
|
|
m_a_uiOptionConfig[1] = IDC_COMBO_CONFIGOPTION;
|
|
m_a_uiOptionConfig[2] = IDC_BUTTON_CREATECONFIGOPTION;
|
|
m_a_uiOptionConfig[3] = IDC_BUTTON_SAVECONFIGOPTION;
|
|
m_a_uiOptionConfig[4] = IDC_BUTTON_DELETECONFIGOPTION;
|
|
m_cNbOptionConfig = 5;
|
|
|
|
// initial is FALSE, and is putting on TRUE in the function OnInitDialog
|
|
m_bInit = FALSE;
|
|
|
|
//initialize for the cross
|
|
m_bFirstShow = TRUE;
|
|
m_oCrossDC.CreateCompatibleDC(NULL);
|
|
m_oCrossBitmap.LoadBitmap(IDB_BITMAP_CROSS);
|
|
m_oCrossDC.SelectObject(m_oCrossBitmap);
|
|
|
|
//initial the total number of selections is 0
|
|
m_iCountOfSelections=0;
|
|
m_iInd=0;
|
|
|
|
m_bConversion = FALSE;
|
|
|
|
//and there are no types
|
|
m_p_oTypeAnims = NULL;
|
|
m_p_oTypeBanks = NULL;
|
|
m_p_oTypeClasses = NULL;
|
|
m_p_oTypeFamilies = NULL;
|
|
m_p_oTypeLevels = NULL;
|
|
m_p_oTypeTextures = NULL;
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: destructor
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
CDlgMain::~CDlgMain()
|
|
{
|
|
//delete the cross
|
|
m_oCrossBitmap.DeleteObject();
|
|
m_oCrossDC.DeleteDC();
|
|
m_fn_vFreeMemory();
|
|
|
|
HWND hwnd = m_oRichEditCom.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
|
|
hwnd = m_oEditRawSp1.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
|
|
hwnd = m_oEditRawSp2.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
|
|
hwnd = m_oEditGameSp1.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
|
|
hwnd = m_oEditGameSp2.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
|
|
hwnd = m_oEditRegisterDir.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
|
|
hwnd = m_oEditCreateDir.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
|
|
hwnd = m_oComboChooseDir.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
|
|
hwnd = m_oEditRegisterOption.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
|
|
hwnd = m_oEditCreateOption.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
|
|
hwnd = m_oComboChooseOption.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
|
|
hwnd = m_oEditRegisterSelect.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
|
|
hwnd = m_oEditCreateSelect.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
|
|
hwnd = m_oComboChooseSelect.m_hWnd;
|
|
::RemoveProp(hwnd, "class");
|
|
SetWindowLong(hwnd, GWL_WNDPROC, (long)GetProp(hwnd, "wproc"));
|
|
::RemoveProp(hwnd, "wproc");
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: treat the mesages for the dialog
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
BOOL CDlgMain::PreTranslateMessage(MSG* pMsg)
|
|
{
|
|
int iIndexAction = m_oListObject->GetCurSel();
|
|
int iCtrlID = 0;
|
|
BOOL bResult = FALSE;
|
|
|
|
switch (pMsg->message)
|
|
{
|
|
case WM_LBUTTONDOWN:
|
|
if (pMsg->hwnd == m_oListObject->m_hWnd)
|
|
bResult = OnLButtonDownListBoxObject(pMsg);
|
|
break;
|
|
|
|
|
|
case WM_RBUTTONDOWN:
|
|
iCtrlID = ::GetDlgCtrlID(pMsg->hwnd);
|
|
|
|
if (iCtrlID == IDC_PANELCONFIGS)
|
|
AfxGetApp()->WinHelp(HID_PANELCONFIGS, HELP_CONTEXTPOPUP);
|
|
|
|
else if (iCtrlID == IDC_MAINPANEL)
|
|
AfxGetApp()->WinHelp(HID_MAINPANEL, HELP_CONTEXTPOPUP);
|
|
|
|
if (iCtrlID == IDC_RICHEDIT_RESULT)
|
|
AfxGetApp()->WinHelp(HID_RICHEDIT_RESULT, HELP_CONTEXTPOPUP);
|
|
|
|
else if (iCtrlID == IDC_RICHEDIT_COMMAND)
|
|
AfxGetApp()->WinHelp(HID_RICHEDIT_COMMAND, HELP_CONTEXTPOPUP);
|
|
|
|
else if (iCtrlID)
|
|
{
|
|
CWnd *pCtrlWnd = GetDlgItem(iCtrlID);
|
|
if (pCtrlWnd)
|
|
AfxGetApp()->WinHelp(pCtrlWnd->GetWindowContextHelpId(), HELP_CONTEXTPOPUP);
|
|
}
|
|
else
|
|
{
|
|
POINT ptMousePos;
|
|
|
|
ptMousePos.x = LOWORD(pMsg->lParam);
|
|
ptMousePos.y = HIWORD(pMsg->lParam);
|
|
|
|
CWnd *pCtrlWnd = ChildWindowFromPoint(ptMousePos, CWP_SKIPINVISIBLE);
|
|
if (pCtrlWnd)
|
|
AfxGetApp()->WinHelp(pCtrlWnd->GetWindowContextHelpId(), HELP_CONTEXTPOPUP);
|
|
}
|
|
bResult = TRUE;
|
|
break;
|
|
}
|
|
return bResult;
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: data exchange
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void CDlgMain::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CDlgMain)
|
|
// NOTE: the ClassWizard will add DDX and DDV calls here
|
|
|
|
// panels
|
|
DDX_Control(pDX, IDC_PANELCONFIGS, m_oConfigPanel);
|
|
DDX_Control(pDX, IDC_MAINPANEL, m_oMainPanel);
|
|
|
|
// directory configs
|
|
DDX_Control(pDX, IDC_EDIT_REGISTERCONFIGDIR, m_oEditRegisterDir);
|
|
DDX_Control(pDX, IDC_EDIT_CREATECONFIGDIR, m_oEditCreateDir);
|
|
DDX_Control(pDX, IDC_BUTTON_REGISTERCONFIGDIR, m_oButtonRegisterDir);
|
|
DDX_Control(pDX, IDC_BUTTON_CREATECONFIGDIR, m_oButtonCreateDir);
|
|
DDX_Control(pDX, IDC_BUTTON_DELETECONFIGDIR, m_oButtonDeleteDir);
|
|
DDX_Control(pDX, IDC_BUTTON_SAVECONFIGDIR, m_oButtonSaveDir);
|
|
DDX_Control(pDX, IDC_COMBO_CONFIGDIR, m_oComboChooseDir);
|
|
|
|
// rawdata
|
|
DDX_Control(pDX, IDC_CHECK_RAWDATA, m_oCheckRawData);
|
|
DDX_Control(pDX, IDC_CHECK_RAWSPECIFIC1, m_oCheckRawSP1);
|
|
DDX_Control(pDX, IDC_CHECK_RAWSPECIFIC2, m_oCheckRawSP2);
|
|
DDX_Control(pDX, IDC_EDIT_RAWSP1, m_oEditRawSp1);
|
|
DDX_Control(pDX, IDC_EDIT_RAWSP2, m_oEditRawSp2);
|
|
// gamedata
|
|
DDX_Control(pDX, IDC_CHECK_GAMEDATA, m_oCheckGameData);
|
|
DDX_Control(pDX, IDC_CHECK_GAMESPECIFIC1, m_oCheckGameSP1);
|
|
DDX_Control(pDX, IDC_CHECK_GAMESPECIFIC2, m_oCheckGameSP2);
|
|
DDX_Control(pDX, IDC_EDIT_GAMESP1, m_oEditGameSp1);
|
|
DDX_Control(pDX, IDC_EDIT_GAMESP2, m_oEditGameSp2);
|
|
// main options
|
|
DDX_Control(pDX, IDC_CHECK_RAYMAN2, m_oCheckRayman2);
|
|
DDX_Control(pDX, IDC_CHECK_MODIFLST, m_oCheckModifLst);
|
|
DDX_Control(pDX, IDC_CHECK_ERASEMOD, m_oCheckEraseMdf);
|
|
|
|
// selection buttons
|
|
DDX_Control(pDX, IDC_BUTTON_SELECTLIST, m_oSelectList);
|
|
DDX_Control(pDX, IDC_BUTTON_SELECTALL, m_oSelectAll);
|
|
DDX_Control(pDX, IDC_BUTTON_CLEARLIST, m_oClearList);
|
|
DDX_Control(pDX, IDC_BUTTON_CLEARALL, m_oClearAll);
|
|
// select configs buttons
|
|
DDX_Control(pDX, IDC_EDIT_REGISTERCONFIGSELECT, m_oEditRegisterSelect);
|
|
DDX_Control(pDX, IDC_EDIT_CREATECONFIGSELECT, m_oEditCreateSelect);
|
|
DDX_Control(pDX, IDC_BUTTON_REGISTERCONFIGSELECT, m_oButtonRegisterSelect);
|
|
DDX_Control(pDX, IDC_BUTTON_CREATECONFIGSELECT, m_oButtonCreateSelect);
|
|
DDX_Control(pDX, IDC_BUTTON_DELETECONFIGSELECT, m_oButtonDeleteSelect);
|
|
DDX_Control(pDX, IDC_BUTTON_SAVECONFIGSELECT, m_oButtonSaveSelect);
|
|
DDX_Control(pDX, IDC_COMBO_CONFIGSELECT, m_oComboChooseSelect);
|
|
// conflict options
|
|
DDX_Control(pDX, IDC_CHECK_ZOO_MAX, m_oCheckZooMax);
|
|
DDX_Control(pDX, IDC_CHECK_SCT_MAX, m_oCheckSctMax);
|
|
DDX_Control(pDX, IDC_CHECK_SPO_MAX, m_oCheckSpoMax);
|
|
DDX_Control(pDX, IDC_CHECK_GMT_MAX, m_oCheckGmtMax);
|
|
DDX_Control(pDX, IDC_CHECK_VMT_MAX, m_oCheckVmtMax);
|
|
DDX_Control(pDX, IDC_CHECK_ZOO_EDS, m_oCheckZooEds);
|
|
DDX_Control(pDX, IDC_CHECK_SCT_EDS, m_oCheckSctEds);
|
|
DDX_Control(pDX, IDC_CHECK_SPO_EDS, m_oCheckSpoEds);
|
|
DDX_Control(pDX, IDC_CHECK_GMT_EDS, m_oCheckGmtEds);
|
|
DDX_Control(pDX, IDC_CHECK_VMT_EDS, m_oCheckVmtEds);
|
|
// conversion options
|
|
DDX_Control(pDX, IDC_CHECK_COPYANIMS, m_oCheckCopyAnims);
|
|
DDX_Control(pDX, IDC_CHECK_COPYTEXTURES, m_oCheckCopyTextures);
|
|
DDX_Control(pDX, IDC_CHECK_GENERATERLI, m_oCheckGenerateRLI);
|
|
DDX_Control(pDX, IDC_CHECK_UPDATEGAMEDSC, m_oCheckUpdateGameDsc);
|
|
// erase options
|
|
DDX_Control(pDX, IDC_CHECK_ERASEDUPLICATED, m_oCheckEraseDup);
|
|
DDX_Control(pDX, IDC_CHECK_ERASEUNUSED, m_oCheckEraseUnused);
|
|
// family options
|
|
DDX_Control(pDX, IDC_CHECK_ASKFAMILY, m_oCheckAskFamily);
|
|
DDX_Control(pDX, IDC_CHECK_FORCECOMMON, m_oCheckCommon);
|
|
DDX_Control(pDX, IDC_CHECK_FORCESPECIFIC, m_oCheckSpecific);
|
|
// bank options
|
|
DDX_Control(pDX, IDC_CHECK_BASICFAMILY, m_oCheckCreateFamily);
|
|
// convert button
|
|
DDX_Control(pDX, IDC_BUTTON_CONVERT, m_oConvert);
|
|
|
|
// options config
|
|
DDX_Control(pDX, IDC_EDIT_REGISTERCONFIGOPTION, m_oEditRegisterOption);
|
|
DDX_Control(pDX, IDC_EDIT_CREATECONFIGOPTION, m_oEditCreateOption);
|
|
DDX_Control(pDX, IDC_BUTTON_REGISTERCONFIGOPTION, m_oButtonRegisterOption);
|
|
DDX_Control(pDX, IDC_BUTTON_CREATECONFIGOPTION, m_oButtonCreateOption);
|
|
DDX_Control(pDX, IDC_BUTTON_DELETECONFIGOPTION, m_oButtonDeleteOption);
|
|
DDX_Control(pDX, IDC_BUTTON_SAVECONFIGOPTION, m_oButtonSaveOption);
|
|
DDX_Control(pDX, IDC_COMBO_CONFIGOPTION, m_oComboChooseOption);
|
|
|
|
// progress bar
|
|
DDX_Control(pDX, IDC_STATIC_PROGRESS, m_oProgress);
|
|
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: treat the WM_COMMAND message
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
BOOL CDlgMain::OnCommand(WPARAM wParam, LPARAM lParam)
|
|
{
|
|
switch(LOWORD(wParam))
|
|
{
|
|
// help menu
|
|
case IDM_OPENHELP:
|
|
OnHelp();
|
|
break;
|
|
|
|
case IDM_ABOUTBOX:
|
|
{
|
|
CAboutDlg dlgAbout;
|
|
dlgAbout.DoModal();
|
|
break;
|
|
}
|
|
break;
|
|
|
|
default :
|
|
return CDialog::OnCommand(wParam, lParam);
|
|
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: message map
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
BEGIN_MESSAGE_MAP(CDlgMain, CDialog)
|
|
//{{AFX_MSG_MAP(CDlgMain)
|
|
// main functions
|
|
ON_WM_PAINT()
|
|
ON_WM_SIZE()
|
|
ON_WM_SIZING()
|
|
ON_WM_DESTROY()
|
|
ON_WM_CLOSE()
|
|
ON_BN_CLICKED(IDC_BUTTON_QUIT, OnQuit)
|
|
|
|
// help
|
|
ON_WM_HELPINFO()
|
|
ON_BN_CLICKED(IDC_BUTTON_HELP, OnCheckHelp)
|
|
|
|
// change panel
|
|
ON_NOTIFY(TCN_SELCHANGE, IDC_MAINPANEL, OnSelchangePanel)
|
|
ON_NOTIFY(TCN_SELCHANGE, IDC_PANELCONFIGS, OnSelchangeTab)
|
|
|
|
// rename directories
|
|
ON_EN_KILLFOCUS(IDC_EDIT_RAWSP1, OnKillFocusRawSpecific1)
|
|
ON_EN_KILLFOCUS(IDC_EDIT_RAWSP2, OnKillFocusRawSpecific2)
|
|
ON_EN_KILLFOCUS(IDC_EDIT_GAMESP1, OnKillFocusGameSpecific1)
|
|
ON_EN_KILLFOCUS(IDC_EDIT_GAMESP2, OnKillFocusGameSpecific2)
|
|
// choose directories
|
|
ON_BN_CLICKED(IDC_CHECK_GAMEDATA, OnCheckGameData)
|
|
ON_BN_CLICKED(IDC_CHECK_GAMESPECIFIC1, OnCheckGameSpecific1)
|
|
ON_BN_CLICKED(IDC_CHECK_GAMESPECIFIC2, OnCheckGameSpecific2)
|
|
ON_BN_CLICKED(IDC_CHECK_RAWDATA, OnCheckRawData)
|
|
ON_BN_CLICKED(IDC_CHECK_RAWSPECIFIC1, OnCheckRawSpecific1)
|
|
ON_BN_CLICKED(IDC_CHECK_RAWSPECIFIC2, OnCheckRawSpecific2)
|
|
// browse directories
|
|
ON_BN_CLICKED(IDC_BROWSE_GAMEDATA, OnButtonBrowseGameData)
|
|
ON_BN_CLICKED(IDC_BROWSE_GAMESPECIFIC1, OnButtonBrowseGameSpecific1)
|
|
ON_BN_CLICKED(IDC_BROWSE_GAMESPECIFIC2, OnButtonBrowseGameSpecific2)
|
|
ON_BN_CLICKED(IDC_BROWSE_RAWDATA, OnButtonBrowseRawData)
|
|
ON_BN_CLICKED(IDC_BROWSE_RAWSPECIFIC1, OnButtonBrowseRawSpecific1)
|
|
ON_BN_CLICKED(IDC_BROWSE_RAWSPECIFIC2, OnButtonBrowseRawSpecific2)
|
|
|
|
// directory configuration
|
|
ON_BN_CLICKED(IDC_BUTTON_REGISTERCONFIGDIR, OnRegisterConfigDir)
|
|
ON_BN_CLICKED(IDC_BUTTON_CREATECONFIGDIR, OnCreateConfigDir)
|
|
ON_BN_CLICKED(IDC_BUTTON_DELETECONFIGDIR, OnDeleteConfigDir)
|
|
ON_BN_CLICKED(IDC_BUTTON_SAVECONFIGDIR, OnSaveConfigDir)
|
|
ON_CBN_SELCHANGE(IDC_COMBO_CONFIGDIR, OnChooseConfigDir)
|
|
ON_CBN_KILLFOCUS(IDC_COMBO_CONFIGDIR, OnKillFocusComboChooseConfigDir)
|
|
ON_EN_KILLFOCUS(IDC_EDIT_REGISTERCONFIGDIR, OnKillFocusEditRegisterConfigDir)
|
|
ON_EN_KILLFOCUS(IDC_EDIT_CREATECONFIGDIR, OnKillFocusEditCreateConfigDir)
|
|
|
|
// browse custom directories
|
|
ON_BN_CLICKED(IDC_BROWSE_ANIMS, OnButtonBrowseAnims)
|
|
ON_BN_CLICKED(IDC_BROWSE_BANKS, OnButtonBrowseBanks)
|
|
ON_BN_CLICKED(IDC_BROWSE_CLASSES, OnButtonBrowseClasses)
|
|
ON_BN_CLICKED(IDC_BROWSE_FAMILIES, OnButtonBrowseFamilies)
|
|
ON_BN_CLICKED(IDC_BROWSE_LEVELS, OnButtonBrowseLevels)
|
|
ON_BN_CLICKED(IDC_BROWSE_TEXTURES, OnButtonBrowseTextures)
|
|
|
|
// main options
|
|
ON_BN_CLICKED(IDC_CHECK_RAYMAN2, OnRayman2)
|
|
ON_BN_CLICKED(IDC_CHECK_MODIFLST, OnModifLst)
|
|
ON_BN_CLICKED(IDC_CHECK_ERASEMOD, OnEraseMdf)
|
|
|
|
// listbox functions
|
|
ON_LBN_SELCHANGE(IDC_LISTBOX_TYPES, OnSelchangeListType)
|
|
ON_WM_DRAWITEM()
|
|
|
|
// selection buttons
|
|
ON_BN_CLICKED(IDC_BUTTON_SELECTALL, OnSelectAll)
|
|
ON_BN_CLICKED(IDC_BUTTON_SELECTLIST, OnSelectList)
|
|
ON_BN_CLICKED(IDC_BUTTON_CLEARLIST, OnClearList)
|
|
ON_BN_CLICKED(IDC_BUTTON_CLEARALL, OnClearAll)
|
|
// select config buttons
|
|
ON_BN_CLICKED(IDC_BUTTON_CREATECONFIGSELECT, OnCreateConfigSelect)
|
|
ON_BN_CLICKED(IDC_BUTTON_REGISTERCONFIGSELECT, OnRegisterConfigSelect)
|
|
ON_BN_CLICKED(IDC_BUTTON_SAVECONFIGSELECT, OnSaveConfigSelect)
|
|
ON_BN_CLICKED(IDC_BUTTON_DELETECONFIGSELECT, OnDeleteConfigSelect)
|
|
ON_CBN_SELCHANGE(IDC_COMBO_CONFIGSELECT, OnChooseConfigSelect)
|
|
ON_CBN_KILLFOCUS(IDC_COMBO_CONFIGSELECT, OnKillFocusComboChooseConfigSelect)
|
|
ON_EN_KILLFOCUS(IDC_EDIT_CREATECONFIGSELECT, OnKillFocusEditCreateConfigSelect)
|
|
ON_EN_KILLFOCUS(IDC_EDIT_REGISTERCONFIGSELECT, OnKillFocusEditRegisterConfigSelect)
|
|
// convert button
|
|
ON_BN_CLICKED(IDC_BUTTON_CONVERT, OnConvert)
|
|
|
|
// conflict options
|
|
ON_BN_CLICKED(IDC_CHECK_ZOO_MAX, OnCheckZooMax)
|
|
ON_BN_CLICKED(IDC_CHECK_ZOO_EDS, OnCheckZooEds)
|
|
ON_BN_CLICKED(IDC_CHECK_SCT_MAX, OnCheckSctMax)
|
|
ON_BN_CLICKED(IDC_CHECK_SCT_EDS, OnCheckSctEds)
|
|
ON_BN_CLICKED(IDC_CHECK_SPO_MAX, OnCheckSpoMax)
|
|
ON_BN_CLICKED(IDC_CHECK_SPO_EDS, OnCheckSpoEds)
|
|
ON_BN_CLICKED(IDC_CHECK_GMT_MAX, OnCheckGmtMax)
|
|
ON_BN_CLICKED(IDC_CHECK_GMT_EDS, OnCheckGmtEds)
|
|
ON_BN_CLICKED(IDC_CHECK_VMT_MAX, OnCheckVmtMax)
|
|
ON_BN_CLICKED(IDC_CHECK_VMT_EDS, OnCheckVmtEds)
|
|
// conversion options
|
|
ON_BN_CLICKED(IDC_CHECK_COPYANIMS, OnCopyAnims)
|
|
ON_BN_CLICKED(IDC_CHECK_COPYTEXTURES, OnCopyTextures)
|
|
ON_BN_CLICKED(IDC_CHECK_GENERATERLI, OnGenerateRLI)
|
|
ON_BN_CLICKED(IDC_CHECK_UPDATEGAMEDSC, OnUpdateGameDSC)
|
|
// erase options
|
|
ON_BN_CLICKED(IDC_CHECK_ERASEDUPLICATED, OnEraseDuplicated)
|
|
ON_BN_CLICKED(IDC_CHECK_ERASEUNUSED, OnEraseUnused)
|
|
// family options
|
|
ON_BN_CLICKED(IDC_CHECK_FORCECOMMON, OnForceCommon)
|
|
ON_BN_CLICKED(IDC_CHECK_FORCESPECIFIC, OnForceSpecific)
|
|
ON_BN_CLICKED(IDC_CHECK_ASKFAMILY, OnAskFamily)
|
|
// bank option
|
|
ON_BN_CLICKED(IDC_CHECK_BASICFAMILY, OnCreateBasicFamily)
|
|
|
|
// option configuration
|
|
ON_BN_CLICKED(IDC_BUTTON_CREATECONFIGOPTION, OnCreateConfigOption)
|
|
ON_BN_CLICKED(IDC_BUTTON_REGISTERCONFIGOPTION, OnRegisterConfigOption)
|
|
ON_BN_CLICKED(IDC_BUTTON_SAVECONFIGOPTION, OnSaveConfigOption)
|
|
ON_BN_CLICKED(IDC_BUTTON_DELETECONFIGOPTION, OnDeleteConfigOption)
|
|
ON_CBN_SELCHANGE(IDC_COMBO_CONFIGOPTION, OnChooseConfigOption)
|
|
ON_CBN_KILLFOCUS(IDC_COMBO_CONFIGOPTION, OnKillFocusComboChooseConfigOption)
|
|
ON_EN_KILLFOCUS(IDC_EDIT_CREATECONFIGOPTION, OnKillFocusEditCreateConfigOption)
|
|
ON_EN_KILLFOCUS(IDC_EDIT_REGISTERCONFIGOPTION, OnKillFocusEditRegisterConfigOption)
|
|
|
|
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: Handle function for message WM_INITDIALOG
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
BOOL CDlgMain::OnInitDialog()
|
|
{
|
|
TC_ITEM TabCtrlItem;
|
|
RECT stRect;
|
|
RECT stDlgRect;
|
|
long lDlgWidth;
|
|
long lDlgHeight;
|
|
char *p_szCommanLine;
|
|
char szVersion[25], *p_szVersion;
|
|
char szAnims[_MAX_PATH];
|
|
char szBanks[_MAX_PATH];
|
|
char szClasses[_MAX_PATH];
|
|
char szFamilies[_MAX_PATH];
|
|
char szLevels[_MAX_PATH];
|
|
char szTextures[_MAX_PATH];
|
|
|
|
strcpy(g_szDirConfig,"");
|
|
strcpy(g_szSelectConfig,"");
|
|
strcpy(g_szOptionConfig,"");
|
|
|
|
// save initial directory
|
|
GetCurrentDirectory(256, g_sInitialDir);
|
|
|
|
CDialog::OnInitDialog();
|
|
|
|
// obtained the height and the width of the main window
|
|
GetClientRect( &stDlgRect );
|
|
lDlgWidth = stDlgRect.right - stDlgRect.left + 1;
|
|
lDlgHeight = stDlgRect.bottom - stDlgRect.top + 1;
|
|
|
|
// get command line
|
|
p_szCommanLine= AfxGetApp()->m_lpCmdLine;
|
|
p_szCommanLine= _strlwr(p_szCommanLine);
|
|
|
|
GetCurrentDirectory( MAX_PATH, g_szInitialDirectory );
|
|
// analyse command line and INI file to get all the options
|
|
m_fn_vInitAllOptions(p_szCommanLine, szAnims, szBanks, szClasses, szFamilies, szLevels, szTextures);
|
|
|
|
// check datas
|
|
m_fn_bWarningUser();
|
|
|
|
// init buttons for game directories
|
|
switch(g_iData)
|
|
{
|
|
case 0:
|
|
m_oCheckGameData.SetCheck(1);
|
|
break;
|
|
case 1:
|
|
m_oCheckGameSP1.SetCheck(1);
|
|
break;
|
|
case 2:
|
|
m_oCheckGameSP2.SetCheck(1);
|
|
break;
|
|
}
|
|
if (!strcmp(g_stInitialData.szGameSpecific1, ""))
|
|
m_oCheckGameSP1.EnableWindow(FALSE);
|
|
if (!strcmp(g_stInitialData.szGameSpecific2, ""))
|
|
m_oCheckGameSP2.EnableWindow(FALSE);
|
|
|
|
// init buttons for raw directories
|
|
switch(g_iRaw)
|
|
{
|
|
case 0:
|
|
m_oCheckRawData.SetCheck(1);
|
|
break;
|
|
case 1:
|
|
m_oCheckRawSP1.SetCheck(1);
|
|
break;
|
|
case 2:
|
|
m_oCheckRawSP2.SetCheck(1);
|
|
break;
|
|
}
|
|
if (!strcmp(g_stInitialData.szRawSpecific1, ""))
|
|
m_oCheckRawSP1.EnableWindow(FALSE);
|
|
if (!strcmp(g_stInitialData.szRawSpecific2, ""))
|
|
m_oCheckRawSP2.EnableWindow(FALSE);
|
|
|
|
// init buttons for main options
|
|
m_oCheckRayman2.SetCheck(g_bRaymanII);
|
|
m_oCheckModifLst.SetCheck(g_bModifLst);
|
|
m_oCheckEraseMdf.SetCheck(g_bEraseMdf);
|
|
|
|
// init buttons for options
|
|
m_fn_vSetOptions();
|
|
if (g_bAskFamily)
|
|
{
|
|
m_oCheckCommon.EnableWindow(FALSE);
|
|
m_oCheckSpecific.EnableWindow(FALSE);
|
|
}
|
|
|
|
// Create a richEdit control in the result panel
|
|
GetDlgItem( IDC_STATIC_RESULTEDIT)->GetWindowRect( &stRect );
|
|
m_oRichEditRes.Create
|
|
(
|
|
WS_BORDER | WS_CHILD | WS_VISIBLE | ES_AUTOVSCROLL | WS_VSCROLL | ES_MULTILINE | ES_READONLY,
|
|
stRect,
|
|
this,
|
|
IDC_RICHEDIT_RESULT
|
|
);
|
|
m_oRichEditRes.SetBackgroundColor( FALSE, RGB( 255, 255,255) );
|
|
m_oRichEditRes.GetDefaultCharFormat( m_stCharFormatRes );
|
|
m_stCharFormatRes.dwEffects = 0;
|
|
m_stCharFormatRes.crTextColor = RGB(255,255,255);
|
|
strcpy ( m_stCharFormatRes.szFaceName, "Arial" );
|
|
m_stCharFormatRes.dwMask = CFM_COLOR | CFM_BOLD | CFM_FACE;
|
|
m_oRichEditRes.SetDefaultCharFormat( m_stCharFormatRes );
|
|
|
|
// the same for the command rich edit control
|
|
GetDlgItem( IDC_STATIC_COMMANDEDIT)->GetWindowRect( &stRect );
|
|
stRect.top -= 23;
|
|
m_oRichEditCom.Create
|
|
(
|
|
WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | ES_READONLY,
|
|
stRect,
|
|
this,
|
|
IDC_RICHEDIT_COMMAND
|
|
);
|
|
HWND hwnd = m_oRichEditCom.m_hWnd;
|
|
::SetProp(hwnd, "class", (HANDLE)this);
|
|
::SetProp(hwnd, "wproc", (HANDLE)SetWindowLong(hwnd, GWL_WNDPROC, (long)Command));
|
|
m_oRichEditCom.SetBackgroundColor( FALSE, RGB( 255, 255,255) );
|
|
m_oRichEditCom.GetDefaultCharFormat( m_stCharFormatCom );
|
|
m_stCharFormatCom.dwEffects = 0;
|
|
m_stCharFormatCom.crTextColor = RGB(0,0,0);
|
|
strcpy ( m_stCharFormatCom.szFaceName, "Arial" );
|
|
m_stCharFormatCom.dwMask = CFM_COLOR | CFM_BOLD | CFM_FACE;
|
|
m_oRichEditCom.SetDefaultCharFormat( m_stCharFormatCom );
|
|
|
|
HWND hwnd1 = m_oEditRawSp1.m_hWnd;
|
|
::SetProp(hwnd1, "class", (HANDLE)this);
|
|
::SetProp(hwnd1, "wproc", (HANDLE)SetWindowLong(hwnd1, GWL_WNDPROC, (long)CommandRawSp1));
|
|
|
|
HWND hwnd2 = m_oEditRawSp2.m_hWnd;
|
|
::SetProp(hwnd2, "class", (HANDLE)this);
|
|
::SetProp(hwnd2, "wproc", (HANDLE)SetWindowLong(hwnd2, GWL_WNDPROC, (long)CommandRawSp2));
|
|
|
|
HWND hwnd3 = m_oEditGameSp1.m_hWnd;
|
|
::SetProp(hwnd3, "class", (HANDLE)this);
|
|
::SetProp(hwnd3, "wproc", (HANDLE)SetWindowLong(hwnd3, GWL_WNDPROC, (long)CommandGameSp1));
|
|
|
|
HWND hwnd4 = m_oEditGameSp2.m_hWnd;
|
|
::SetProp(hwnd4, "class", (HANDLE)this);
|
|
::SetProp(hwnd4, "wproc", (HANDLE)SetWindowLong(hwnd4, GWL_WNDPROC, (long)CommandGameSp2));
|
|
|
|
hwnd1 = m_oEditRegisterDir.m_hWnd;
|
|
::SetProp(hwnd1, "class", (HANDLE)this);
|
|
::SetProp(hwnd1, "wproc", (HANDLE)SetWindowLong(hwnd1, GWL_WNDPROC, (long)CommandRegisterDir));
|
|
|
|
hwnd1 = m_oEditCreateDir.m_hWnd;
|
|
::SetProp(hwnd1, "class", (HANDLE)this);
|
|
::SetProp(hwnd1, "wproc", (HANDLE)SetWindowLong(hwnd1, GWL_WNDPROC, (long)CommandCreateDir));
|
|
|
|
CWnd* cwnd = m_oComboChooseDir.GetTopWindow( );
|
|
hwnd = ((CEdit *)cwnd)->m_hWnd;
|
|
::SetProp(hwnd, "class", (HANDLE)this);
|
|
::SetProp(hwnd, "wproc", (HANDLE)SetWindowLong(hwnd, GWL_WNDPROC, (long)CommandRenameDir));
|
|
|
|
hwnd1 = m_oEditRegisterOption.m_hWnd;
|
|
::SetProp(hwnd1, "class", (HANDLE)this);
|
|
::SetProp(hwnd1, "wproc", (HANDLE)SetWindowLong(hwnd1, GWL_WNDPROC, (long)CommandRegisterOption));
|
|
|
|
hwnd1 = m_oEditCreateOption.m_hWnd;
|
|
::SetProp(hwnd1, "class", (HANDLE)this);
|
|
::SetProp(hwnd1, "wproc", (HANDLE)SetWindowLong(hwnd1, GWL_WNDPROC, (long)CommandCreateOption));
|
|
|
|
cwnd = m_oComboChooseOption.GetTopWindow( );
|
|
hwnd = ((CEdit *)cwnd)->m_hWnd;
|
|
::SetProp(hwnd, "class", (HANDLE)this);
|
|
::SetProp(hwnd, "wproc", (HANDLE)SetWindowLong(hwnd, GWL_WNDPROC, (long)CommandRenameOption));
|
|
|
|
hwnd1 = m_oEditRegisterSelect.m_hWnd;
|
|
::SetProp(hwnd1, "class", (HANDLE)this);
|
|
::SetProp(hwnd1, "wproc", (HANDLE)SetWindowLong(hwnd1, GWL_WNDPROC, (long)CommandRegisterSelect));
|
|
|
|
hwnd1 = m_oEditCreateSelect.m_hWnd;
|
|
::SetProp(hwnd1, "class", (HANDLE)this);
|
|
::SetProp(hwnd1, "wproc", (HANDLE)SetWindowLong(hwnd1, GWL_WNDPROC, (long)CommandCreateSelect));
|
|
|
|
cwnd = m_oComboChooseSelect.GetTopWindow( );
|
|
hwnd = ((CEdit *)cwnd)->m_hWnd;
|
|
::SetProp(hwnd, "class", (HANDLE)this);
|
|
::SetProp(hwnd, "wproc", (HANDLE)SetWindowLong(hwnd, GWL_WNDPROC, (long)CommandRenameSelect));
|
|
|
|
// write the version in the static
|
|
p_szVersion = szVersion + GetDlgItem( IDC_STATIC_VERSION)->GetWindowText( szVersion, 17);
|
|
*p_szVersion++ = ' ';
|
|
strcpy( p_szVersion, g_fVersion );
|
|
GetDlgItem( IDC_STATIC_VERSION)->SetWindowText( szVersion);
|
|
|
|
m_oEditRawSp1.ShowWindow(FALSE);
|
|
m_oEditRawSp2.ShowWindow(FALSE);
|
|
m_oEditGameSp1.ShowWindow(FALSE);
|
|
m_oEditGameSp2.ShowWindow(FALSE);
|
|
|
|
//insert the panels
|
|
TabCtrlItem.mask = TCIF_TEXT;
|
|
TabCtrlItem.pszText = "Standard";
|
|
m_oConfigPanel.InsertItem( 0, &TabCtrlItem );
|
|
TabCtrlItem.pszText = "Custom";
|
|
m_oConfigPanel.InsertItem( 1, &TabCtrlItem );
|
|
|
|
//insert the panels
|
|
TabCtrlItem.mask = TCIF_TEXT;
|
|
TabCtrlItem.pszText = "Options";
|
|
m_oMainPanel.InsertItem( 0, &TabCtrlItem );
|
|
TabCtrlItem.pszText = "Selection";
|
|
m_oMainPanel.InsertItem( 1, &TabCtrlItem );
|
|
TabCtrlItem.pszText = "Result";
|
|
m_oMainPanel.InsertItem( 2, &TabCtrlItem );
|
|
|
|
|
|
// init list pointers
|
|
m_oListType = (CListBox *)GetDlgItem(IDC_LISTBOX_TYPES);
|
|
m_oListObject = (CListBox *)GetDlgItem(IDC_LISTBOX_OBJECTS);
|
|
|
|
// init controls for configs
|
|
m_fn_vInitDirCombo();
|
|
m_fn_vInitSelectCombo();
|
|
m_fn_vInitOptionCombo();
|
|
|
|
m_oEditRegisterOption.ShowWindow(FALSE);
|
|
m_oEditCreateOption.ShowWindow(FALSE);
|
|
|
|
m_oEditRegisterSelect.ShowWindow(FALSE);
|
|
m_oEditCreateSelect.ShowWindow(FALSE);
|
|
|
|
// at initializing show only the buttons for the first panel (Directories)
|
|
m_fn_TabC_vShowControlsPanelDir() ;
|
|
|
|
m_oEditRawSp1.SetWindowText(g_stInitialData.szRawSp1);
|
|
m_oEditRawSp2.SetWindowText(g_stInitialData.szRawSp2);
|
|
m_oEditGameSp1.SetWindowText(g_stInitialData.szGameSp1);
|
|
m_oEditGameSp2.SetWindowText(g_stInitialData.szGameSp2);
|
|
|
|
// update all
|
|
m_bRun = !strcmp(p_szCommanLine, "");
|
|
|
|
|
|
|
|
// show the window with its position and size
|
|
m_bInit = TRUE;
|
|
MoveWindow( &g_stWinPosSize.stMainPos );
|
|
|
|
// init all system
|
|
MLT_vInitSystem();
|
|
m_nIndexLast = m_oRichEditRes.GetLineCount();
|
|
|
|
// check if there is something to convert
|
|
if (!strcmp(szAnims, "") && !strcmp(szBanks, "") &&
|
|
!strcmp(szClasses, "") && !strcmp(szFamilies, "") &&
|
|
!strcmp(szLevels, "") && !strcmp(szTextures, "") &&
|
|
!strcmp(g_szSelectConfig, "") && !m_bRun)
|
|
{
|
|
if (AfxMessageBox( "There is nothing to convert!", MB_OK))
|
|
{
|
|
OnDestroy();
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
// check the file lists
|
|
if (!m_bRun)
|
|
{
|
|
m_fn_vSetFromFileList(szBanks, "Banks");
|
|
m_fn_vSetFromFileList(szAnims, "Anims");
|
|
m_fn_vSetFromFileList(szClasses, "Classes");
|
|
m_fn_vSetFromFileList(szFamilies, "Families");
|
|
m_fn_vSetFromFileList(szLevels, "Levels");
|
|
m_fn_vSetFromFileList(szTextures, "Textures");
|
|
m_fn_vConvertData() ;
|
|
OnDestroy();
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: Handle function for message WM_PAINT
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void CDlgMain::OnPaint()
|
|
{
|
|
CPaintDC dc(this);
|
|
|
|
CDialog::OnPaint();
|
|
}
|
|
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: Handle function for message WM_SIZE
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void CDlgMain::OnSize(UINT nType, int cx, int cy)
|
|
{
|
|
RECT stRect;
|
|
CWnd *p_oWnd;
|
|
int iWnd;
|
|
long lWidth, lHeight, lTop, lBottom, lLeft;
|
|
|
|
// default sizing
|
|
CDialog::OnSize(nType, cx, cy);
|
|
|
|
|
|
if (m_bInit)
|
|
{
|
|
if (nType != SIZE_MINIMIZED)
|
|
{
|
|
// resize the main panel
|
|
p_oWnd = GetDlgItem( IDC_MAINPANEL );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
stRect.bottom = cy - 45;
|
|
stRect.right = cx-27;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// resize QUIT button
|
|
p_oWnd = GetDlgItem( IDC_BUTTON_QUIT );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
stRect.bottom = cy - 15;
|
|
stRect.top = stRect.bottom - 20;
|
|
stRect.right = cx-27;
|
|
stRect.left = stRect.right - lWidth;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// resize HELP button
|
|
p_oWnd = GetDlgItem( IDC_BUTTON_HELP );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
stRect.bottom = cy - 15;
|
|
stRect.top = stRect.bottom - 20;
|
|
stRect.right = cx-117;
|
|
stRect.left = stRect.right - lWidth;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// resize version control
|
|
p_oWnd = GetDlgItem( IDC_STATIC_VERSION );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right-stRect.left;
|
|
stRect.bottom = cy - 10;
|
|
stRect.top = stRect.bottom - 20;
|
|
stRect.right = cx-217;
|
|
stRect.left = stRect.right - lWidth;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// FIRST PANEL
|
|
|
|
// resize the groups
|
|
for (iWnd = 0; iWnd < m_cNbGroupButtons; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiGroupButtons[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
stRect.right = cx-68;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
|
|
// source directories
|
|
// ==================
|
|
|
|
// resize the config panel
|
|
p_oWnd = GetDlgItem( IDC_PANELCONFIGS );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
stRect.left = 40;
|
|
stRect.top = 70;
|
|
stRect.right = stRect.left + (cx - 125);
|
|
stRect.bottom = stRect.top + 185;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// standard config
|
|
//---------------
|
|
|
|
// resize name controls
|
|
for (iWnd = 0; iWnd < m_cNbEditNameControls; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiEditNameControls[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
stRect.left = 45;
|
|
stRect.right = stRect.left + lWidth;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
// resize edit controls
|
|
for (iWnd = 0; iWnd < m_cNbEditControls; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiEditControls[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
stRect.right = stRect.left + (cx - 285);
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
// resize browse controls
|
|
for (iWnd = 0; iWnd < m_cNbBrowseButtons; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiBrowseButtons[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
stRect.right = cx-97;
|
|
stRect.left = stRect.right - lWidth;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
|
|
// custom config
|
|
//---------------
|
|
|
|
// resize config controls
|
|
for (iWnd = 0; iWnd < m_cNbCustomConfigControls; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiCustomConfigControls[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
stRect.left = 50;
|
|
stRect.right = stRect.left + lWidth;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
if (iWnd == 0)
|
|
{
|
|
p_oWnd = GetDlgItem( IDC_EDIT_REGISTERCONFIGDIR );
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
if (iWnd == 2)
|
|
{
|
|
p_oWnd = GetDlgItem( IDC_EDIT_CREATECONFIGDIR );
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
}
|
|
|
|
// resize static controls
|
|
for (iWnd = 0; iWnd < m_cNbCustomStaticControls; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiCustomStaticControls[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
stRect.left = 160;
|
|
stRect.right = stRect.left + lWidth;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
|
|
// resize edit controls
|
|
for (iWnd = 0; iWnd < m_cNbCustomEditControls; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiCustomEditControls[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
stRect.left = 210;
|
|
stRect.right = stRect.left + (cx - 340);
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
|
|
// main options
|
|
// ============
|
|
|
|
// resize main option controls
|
|
for (iWnd = 0; iWnd < m_cNbMainButtons; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiMainButtons[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
stRect.left = stRect.right - lWidth;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
|
|
|
|
// SECOND PANEL
|
|
|
|
// lists
|
|
// =====
|
|
|
|
// resize the message
|
|
p_oWnd = GetDlgItem( IDC_STATIC_LISTMESSAGE );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
stRect.top = 50;
|
|
stRect.left = 30;
|
|
stRect.right = 250;
|
|
stRect.bottom = 200;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// resize the type list
|
|
p_oWnd = GetDlgItem( IDC_LISTBOX_TYPES );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
stRect.top = 50;
|
|
stRect.left = 30;
|
|
stRect.right = 140;
|
|
stRect.bottom = cy - 435;
|
|
lBottom = stRect.bottom;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// resize the object list
|
|
p_oWnd = GetDlgItem( IDC_LISTBOX_OBJECTS );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
stRect.top = 50;
|
|
stRect.left = 145;
|
|
stRect.right = cx - 290;
|
|
stRect.bottom = cy - 60;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
|
|
// selection
|
|
// =========
|
|
|
|
|
|
// select config controls
|
|
// ----------------------
|
|
|
|
// resize the group select configs
|
|
p_oWnd = GetDlgItem( IDC_GROUP_SELECTIONCONFIG );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.bottom - stRect.top;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.left = 30;
|
|
stRect.right = 140;
|
|
stRect.top = lBottom + 15;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
lLeft = stRect.left;
|
|
lTop = stRect.top;
|
|
lBottom = lTop + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// resize the select configs buttons
|
|
for (iWnd = 0; iWnd < m_cNbSelectConfigButtons; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiSelectConfigButtons[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.left = lLeft + 10;
|
|
stRect.right = stRect.left + lWidth;
|
|
stRect.top = lTop + 20 + iWnd*30;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
if (iWnd == 0)
|
|
{
|
|
p_oWnd = GetDlgItem( IDC_EDIT_REGISTERCONFIGSELECT );
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
if (iWnd == 2)
|
|
{
|
|
p_oWnd = GetDlgItem( IDC_EDIT_CREATECONFIGSELECT );
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
}
|
|
|
|
// selection controls
|
|
// ------------------
|
|
|
|
// resize the group selection
|
|
p_oWnd = GetDlgItem( IDC_GROUP_SELECTION);
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.bottom - stRect.top;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.left = 30;
|
|
stRect.right = 140;
|
|
stRect.top = lBottom + 15;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
lLeft = stRect.left;
|
|
lTop = stRect.top;
|
|
lBottom = lTop + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// resize the selection buttons
|
|
for (iWnd = 0; iWnd < m_cNbSelectButtons; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiSelectButtons[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.left = lLeft + 15;
|
|
stRect.right = stRect.left + lWidth;
|
|
stRect.top = lTop + 20 + iWnd*25;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
|
|
// resize the clear buttons
|
|
for (iWnd = 0; iWnd < m_cNbClearButtons; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiClearButtons[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.left = lLeft + 15;
|
|
stRect.right = stRect.left + lWidth;
|
|
stRect.top = lTop + 75 + iWnd*25;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
|
|
|
|
// conversion
|
|
// ==========
|
|
|
|
// resize the convert button
|
|
p_oWnd = GetDlgItem( IDC_BUTTON_CONVERT );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.left = 40;
|
|
stRect.right = stRect.left + lWidth;
|
|
stRect.top = lBottom + 15;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
|
|
|
|
// options
|
|
// =======
|
|
|
|
// configurations
|
|
// ------------
|
|
|
|
// resize group config
|
|
p_oWnd = GetDlgItem( IDC_GROUP_CONFIG );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.right = cx - 50;
|
|
stRect.left = cx - 280;
|
|
lWidth = stRect.bottom - stRect.top;
|
|
stRect.top = 50;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
lLeft = stRect.left;
|
|
lTop = stRect.top;
|
|
lBottom = lTop + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// resize the config controls
|
|
for (iWnd = 0; iWnd < m_cNbOptionConfig; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiOptionConfig[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.left = (iWnd < 2) ? lLeft + 9 + iWnd*(lWidth+10) : lLeft + 9;
|
|
stRect.top = (iWnd < 2) ? lTop + 50 : lTop + 20;
|
|
stRect.right = stRect.left + lWidth;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
if (iWnd == 0)
|
|
{
|
|
p_oWnd = GetDlgItem( IDC_EDIT_REGISTERCONFIGOPTION );
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
if (iWnd == 2)
|
|
{
|
|
p_oWnd = GetDlgItem( IDC_EDIT_CREATECONFIGOPTION );
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
lLeft = (iWnd < 2) ? lLeft : stRect.right;
|
|
}
|
|
|
|
// conflict options
|
|
// ----------------
|
|
|
|
// resize the group ignore
|
|
p_oWnd = GetDlgItem( IDC_GROUP_CONFLICT );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.right = cx-50;
|
|
stRect.left = stRect.right - lWidth;
|
|
stRect.top = lBottom + 15;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
lLeft = stRect.left;
|
|
lTop = stRect.top + 5;
|
|
lBottom = lTop + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
for (iWnd = 0; iWnd < m_cNbConflictStaticButtons; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem(m_a_uiConflictStaticButtons[iWnd]);
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.left = lLeft + 7;
|
|
stRect.right = stRect.left + lWidth;
|
|
stRect.top = lTop + 20 + iWnd * 20;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
lLeft += 150;
|
|
|
|
for (iWnd = 0; iWnd < m_cNbConflictMaxButtons; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem(m_a_uiConflictMaxButtons[iWnd]);
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.left = lLeft + 7;
|
|
stRect.right = stRect.left + lWidth;
|
|
stRect.top = lTop + 20 + iWnd * 20;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
lLeft += 35;
|
|
|
|
for (iWnd = 0; iWnd < m_cNbConflictEdsButtons; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem(m_a_uiConflictEdsButtons[iWnd]);
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.left = lLeft + 7;
|
|
stRect.right = stRect.left + lWidth;
|
|
stRect.top = lTop + 20 + iWnd * 20;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
|
|
// conversion options
|
|
// ------------------
|
|
|
|
// resize the group options
|
|
p_oWnd = GetDlgItem( IDC_GROUP_OPTIONS );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.right = cx-50;
|
|
stRect.left = stRect.right - lWidth;
|
|
stRect.top = lBottom + 10;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
lLeft = stRect.left;
|
|
lTop = stRect.top;
|
|
lBottom = lTop + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// resize the options controls
|
|
for (iWnd = 0; iWnd < m_cNbOptionButtons; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiOptionButtons[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.left = lLeft + 10;
|
|
stRect.right = stRect.left + lWidth;
|
|
stRect.top = lTop + 15 + iWnd * 18;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
|
|
// erase options
|
|
// -------------
|
|
|
|
// resize the group erase
|
|
p_oWnd = GetDlgItem( IDC_GROUP_ERASE );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.right = cx-50;
|
|
stRect.left = stRect.right - lWidth;
|
|
stRect.top = lBottom + 10;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
lLeft = stRect.left;
|
|
lTop = stRect.top;
|
|
lBottom = lTop + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// resize the erase controls
|
|
for (iWnd = 0; iWnd < m_cNbEraseButtons; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiEraseButtons[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.left = lLeft + 10;
|
|
stRect.right = stRect.left + lWidth;
|
|
stRect.top = lTop + 15 + iWnd * 18;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
|
|
// family options
|
|
// --------------
|
|
|
|
// resize the group families
|
|
p_oWnd = GetDlgItem( IDC_GROUP_FAMILIES );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.right = cx-50;
|
|
stRect.left = stRect.right - lWidth;
|
|
stRect.top = lBottom + 10;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
lLeft = stRect.left;
|
|
lTop = stRect.top;
|
|
lBottom = lTop + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// resize the family controls
|
|
for (iWnd = 0; iWnd < m_cNbFamilyButtons; iWnd ++)
|
|
{
|
|
p_oWnd = GetDlgItem( m_a_uiFamilyButtons[iWnd] );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
lHeight = stRect.bottom - stRect.top;
|
|
stRect.left = lLeft + 10;
|
|
stRect.right = stRect.left + lWidth;
|
|
stRect.top = lTop + 15 + iWnd * 18;
|
|
stRect.bottom = stRect.top + lHeight;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
}
|
|
|
|
|
|
|
|
// THIRD PANEL
|
|
|
|
|
|
// command
|
|
// =======
|
|
|
|
// resize the command name
|
|
p_oWnd = GetDlgItem( IDC_STATIC_COMMAND );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
stRect.left = 25;
|
|
stRect.top = 50;
|
|
stRect.right = 150;
|
|
stRect.bottom = stRect.top + 12;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// resize the command window
|
|
p_oWnd = GetDlgItem( IDC_RICHEDIT_COMMAND );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
stRect.left = 25;
|
|
stRect.top = 70;
|
|
stRect.right = cx - 57;
|
|
stRect.bottom = cy/3;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// result
|
|
// ======
|
|
|
|
// resize the result name
|
|
p_oWnd = GetDlgItem( IDC_STATIC_RESULT );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
stRect.left = 25;
|
|
stRect.top = cy/3 + 15;
|
|
stRect.right = 100;
|
|
stRect.bottom = stRect.top + 12;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
// resize the result window
|
|
p_oWnd = GetDlgItem( IDC_RICHEDIT_RESULT );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
stRect.left = 25;
|
|
stRect.top = cy/3 + 34;
|
|
stRect.right = cx - 57;
|
|
stRect.bottom = cy-65-15;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
|
|
// progress
|
|
// ========
|
|
|
|
// resize Progress Bar
|
|
p_oWnd = GetDlgItem( IDC_STATIC_PROGRESS );
|
|
p_oWnd->GetWindowRect( &stRect );
|
|
ScreenToClient( &stRect );
|
|
lWidth = stRect.right - stRect.left;
|
|
stRect.right = cx-64;
|
|
stRect.left = stRect.right - lWidth;
|
|
stRect.top=cy-75;
|
|
stRect.bottom=cy -52;
|
|
p_oWnd->MoveWindow(&stRect, FALSE);
|
|
|
|
|
|
|
|
Invalidate();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: Handle function for message WM_SIZING
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void CDlgMain::OnSizing( UINT nSide, LPRECT lpRect )
|
|
{
|
|
long lWidth = lpRect->right - lpRect->left + 1;
|
|
long lHeight= lpRect->bottom - lpRect->top + 1;
|
|
|
|
// the width cannot be less than C_iMainWindowWidth
|
|
if (lWidth < C_iMainWindowWidth)
|
|
{
|
|
switch (nSide)
|
|
{
|
|
case WMSZ_LEFT:
|
|
case WMSZ_TOPLEFT:
|
|
case WMSZ_BOTTOMLEFT:
|
|
lpRect->left = lpRect->right - C_iMainWindowWidth;
|
|
break;
|
|
case WMSZ_RIGHT:
|
|
case WMSZ_TOPRIGHT:
|
|
case WMSZ_BOTTOMRIGHT:
|
|
lpRect->right = lpRect->left + C_iMainWindowWidth;
|
|
break;
|
|
}
|
|
}
|
|
|
|
// the height cannot be less than C_iMainWindowHeight
|
|
if (lHeight < C_iMainWindowHeight)
|
|
{
|
|
switch (nSide)
|
|
{
|
|
case WMSZ_BOTTOM:
|
|
case WMSZ_BOTTOMLEFT:
|
|
case WMSZ_BOTTOMRIGHT:
|
|
lpRect->bottom = lpRect->top + C_iMainWindowHeight;
|
|
break;
|
|
case WMSZ_TOP:
|
|
case WMSZ_TOPLEFT:
|
|
case WMSZ_TOPRIGHT:
|
|
lpRect->top = lpRect->bottom - C_iMainWindowHeight;
|
|
}
|
|
}
|
|
|
|
CDialog::OnSizing( nSide, lpRect );
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: Handle function for message WM_DESTROY
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void CDlgMain::OnDestroy()
|
|
{
|
|
// save new position and size of the main window
|
|
if (m_bInit)
|
|
{
|
|
GetWindowRect( &g_stWinPosSize.stMainPos );
|
|
fn_IniData_vWriteWindowPosSize();
|
|
}
|
|
m_fn_vFreeMemory();
|
|
MLT_vExitSystem();
|
|
|
|
CDialog::OnDestroy();
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: Handle function for message WM_CLOSE
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void CDlgMain::OnClose()
|
|
{
|
|
if (!m_bConversion)
|
|
CDialog::OnClose();
|
|
}
|
|
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: Handle function for message BN_CLICKED on Quit button
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void CDlgMain::OnQuit()
|
|
{
|
|
// check if the directory configuration
|
|
if (g_bChangeComboDir && g_iCurrentIndexDir)
|
|
{
|
|
int iResult = AfxMessageBox( "The current directory configuration was changed : if you do not save it before closing the dialog, the changes will be lost!\n Do you want to save the directory configuration ?", MB_YESNOCANCEL | MB_ICONEXCLAMATION );
|
|
switch (iResult)
|
|
{
|
|
case IDYES:
|
|
OnSaveConfigDir();
|
|
break;
|
|
case IDNO:
|
|
break;
|
|
case IDCANCEL:
|
|
return;
|
|
}
|
|
}
|
|
|
|
// check if the selection configuration
|
|
if (g_bChangeComboSelect && g_iCurrentIndexSelect)
|
|
{
|
|
int iResult = AfxMessageBox( "The current selection configuration was changed : if you do not save it before closing the dialog, the changes will be lost!\n Do you want to save the selection configuration ?", MB_YESNOCANCEL | MB_ICONEXCLAMATION );
|
|
switch (iResult)
|
|
{
|
|
case IDYES:
|
|
OnSaveConfigSelect();
|
|
break;
|
|
case IDNO:
|
|
break;
|
|
case IDCANCEL:
|
|
return;
|
|
}
|
|
}
|
|
|
|
// check if the selection configuration
|
|
if (g_bChangeComboOption && g_iCurrentIndexOption)
|
|
{
|
|
int iResult = AfxMessageBox( "The current option configuration was changed : if you do not save it before closing the dialog, the changes will be lost!\n Do you want to save the option configuration ?", MB_YESNOCANCEL | MB_ICONEXCLAMATION );
|
|
switch (iResult)
|
|
{
|
|
case IDYES:
|
|
OnSaveConfigOption();
|
|
break;
|
|
case IDNO:
|
|
break;
|
|
case IDCANCEL:
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
// if necessary, create file
|
|
if (_access( g_szIniFile, 2) == -1)
|
|
_chmod ( g_szIniFile, _S_IWRITE );
|
|
|
|
// save main options
|
|
WritePrivateProfileString( "MainOptions", "Version", g_bRaymanII ? "RAYMANII" : "RAYMAN", g_szIniFile );
|
|
WritePrivateProfileString( "MainOptions", "UpdateLst", g_bModifLst ? "TRUE" : "FALSE", g_szIniFile );
|
|
WritePrivateProfileString( "MainOptions", "IgnoreMdf", g_bEraseMdf ? "TRUE" : "FALSE", g_szIniFile );
|
|
|
|
// save default option config
|
|
if (!g_iCurrentIndexOption)
|
|
{
|
|
// save ignore options
|
|
WritePrivateProfileString( "Options", "IgnoreZoo", g_bIgnoreZoo ? "TRUE" : "FALSE", g_szIniFile );
|
|
WritePrivateProfileString( "Options", "IgnoreSct", g_bIgnoreSct ? "TRUE" : "FALSE", g_szIniFile );
|
|
WritePrivateProfileString( "Options", "IgnoreSpo", g_bIgnoreSpo ? "TRUE" : "FALSE", g_szIniFile );
|
|
WritePrivateProfileString( "Options", "IgnoreGmt", g_bIgnoreGmt ? "TRUE" : "FALSE", g_szIniFile );
|
|
WritePrivateProfileString( "Options", "IgnoreTex", g_bIgnoreTex ? "TRUE" : "FALSE", g_szIniFile );
|
|
// save conversion options
|
|
WritePrivateProfileString( "Conversion", "CopyAnims", g_bCopyAnims ? "TRUE" : "FALSE", g_szIniFile );
|
|
WritePrivateProfileString( "Conversion", "CopyTextures", g_bCopyTextures ? "TRUE" : "FALSE", g_szIniFile );
|
|
WritePrivateProfileString( "Conversion", "GenerateRLI", g_bGenerateRLI ? "TRUE" : "FALSE", g_szIniFile );
|
|
WritePrivateProfileString( "Conversion", "UpdateGameDSC", g_bUpdateGameDSC ? "TRUE" : "FALSE", g_szIniFile );
|
|
WritePrivateProfileString( "Conversion", "CreateBasicFamily", g_bCreateBasicFamily ? "TRUE" : "FALSE", g_szIniFile );
|
|
// save erase options
|
|
WritePrivateProfileString( "Erase", "EraseDuplicated", g_bEraseDuplicated ? "TRUE" : "FALSE", g_szIniFile );
|
|
WritePrivateProfileString( "Erase", "EraseUnused", g_bEraseUnused ? "TRUE" : "FALSE", g_szIniFile );
|
|
// save family options
|
|
WritePrivateProfileString( "Family", "CommonFamily", g_bCommonFamily ? "TRUE" : "FALSE", g_szIniFile );
|
|
WritePrivateProfileString( "Family", "SpecificFamily", g_bSpecificFamily ? "TRUE" : "FALSE", g_szIniFile );
|
|
WritePrivateProfileString( "Family", "AskFamily", g_bAskFamily ? "TRUE" : "FALSE", g_szIniFile );
|
|
}
|
|
|
|
// save current configurations
|
|
WritePrivateProfileString( "CurrentConfigs", "DirMode", g_bStandardConfig ? "Standard" : "Custom", g_szIniFile );
|
|
WritePrivateProfileString( "CurrentConfigs", "Directories", g_szConfDirs[g_iCurrentIndexDir], g_szIniFile );
|
|
WritePrivateProfileString( "CurrentConfigs", "Selections", g_szConfSelects[g_iCurrentIndexSelect], g_szIniFile );
|
|
WritePrivateProfileString( "CurrentConfigs", "Options", g_szConfOptions[g_iCurrentIndexOption], g_szIniFile );
|
|
|
|
CDialog::OnCancel();
|
|
}
|
|
|
|
|