Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS

Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
This commit is contained in:
Cyd
2026-06-24 21:28:16 -05:00
commit 2b8ca921cb
66341 changed files with 7923174 additions and 0 deletions
@@ -0,0 +1,103 @@
// ImageSpliter.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "ImageSpliter.h"
#include "ImageSpliterDlg.h"
#include "..\..\..\Libraries\ImageLib\Image.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CImageSpliterApp
BEGIN_MESSAGE_MAP(CImageSpliterApp, CWinApp)
//{{AFX_MSG_MAP(CImageSpliterApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CImageSpliterApp construction
CImageSpliterApp::CImageSpliterApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CImageSpliterApp object
CImageSpliterApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CImageSpliterApp initialization
BOOL CImageSpliterApp::InitInstance()
{
AfxEnableControlContainer();
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
CImageSpliterDlg dlg;
m_pMainWnd = &dlg;
CString clne,mname;
clne=m_lpCmdLine;
int loc;
loc=clne.Find("-map");
if(loc!=-1)
{
int crs;
for(crs=0;clne[crs]!=' ' && clne[crs]!=0;crs++);
mname=clne.Mid(loc,crs);
//SplitOffline(mname);
}
else
{
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
}
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
void CImageSpliterApp::SplitOffline(CString &mname,CString &zone)
{
int m_ppseg=4,m_BorderPixels=2;
CString m_ImgName,m_OBase,m_tardir;
m_ImgName="\\AAS1\\MW4\\Art\\Maps\\"+mname+"\\"+mname+"_"+zone+".tif";
m_tardir="Content\\Textures\\Maps\\"+mname+"\\"+zone;
m_OBase=mname;
}
@@ -0,0 +1,158 @@
# Microsoft Developer Studio Project File - Name="ImageSpliter" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=ImageSpliter - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "ImageSpliter.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "ImageSpliter.mak" CFG="ImageSpliter - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "ImageSpliter - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "ImageSpliter - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "ImageSpliter - Win32 Release"
# PROP BASE Use_MFC 6
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 6
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../../rel.bin"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /YX /FD /c
# ADD CPP /nologo /G6 /Zp4 /MD /W3 /GX /O2 /I "..\..\..\Libraries" /I "..\..\..\..\CoreTech\Libraries" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
# ADD LINK32 Ws2_32.lib /nologo /subsystem:windows /machine:I386
!ELSEIF "$(CFG)" == "ImageSpliter - Win32 Debug"
# PROP BASE Use_MFC 6
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 6
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../../../dbg.bin"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /YX /FD /GZ /c
# ADD CPP /nologo /G6 /Zp4 /MDd /W3 /Gm /GR /GX /ZI /Od /I "..\..\..\Libraries" /I "..\..\..\..\CoreTech\Libraries" /D "_ARMOR" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /FR /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Ws2_32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# SUBTRACT LINK32 /incremental:no
!ENDIF
# Begin Target
# Name "ImageSpliter - Win32 Release"
# Name "ImageSpliter - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\ImageSpliter.cpp
# End Source File
# Begin Source File
SOURCE=.\ImageSpliter.rc
# End Source File
# Begin Source File
SOURCE=.\ImageSpliterDlg.cpp
# End Source File
# Begin Source File
SOURCE=.\ProgDlg.cpp
# End Source File
# Begin Source File
SOURCE=.\StdAfx.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\ImageSpliter.h
# End Source File
# Begin Source File
SOURCE=.\ImageSpliterDlg.h
# End Source File
# Begin Source File
SOURCE=.\ProgDlg.h
# End Source File
# Begin Source File
SOURCE=.\Resource.h
# End Source File
# Begin Source File
SOURCE=.\StdAfx.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=.\res\Icon1.ico
# End Source File
# Begin Source File
SOURCE=.\res\ImageSpliter.ico
# End Source File
# Begin Source File
SOURCE=.\res\ImageSpliter.rc2
# End Source File
# End Group
# Begin Source File
SOURCE=.\ReadMe.txt
# End Source File
# End Target
# End Project
@@ -0,0 +1,51 @@
// ImageSpliter.h : main header file for the IMAGESPLITER application
//
#if !defined(AFX_IMAGESPLITER_H__0ACC1CC7_C265_11D2_A5F0_00902712C9AE__INCLUDED_)
#define AFX_IMAGESPLITER_H__0ACC1CC7_C265_11D2_A5F0_00902712C9AE__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
#define DETAILLEVELS 3
/////////////////////////////////////////////////////////////////////////////
// CImageSpliterApp:
// See ImageSpliter.cpp for the implementation of this class
//
class CImageSpliterApp : public CWinApp
{
public:
void SplitOffline(CString &mname,CString &zone);
CImageSpliterApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CImageSpliterApp)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CImageSpliterApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_IMAGESPLITER_H__0ACC1CC7_C265_11D2_A5F0_00902712C9AE__INCLUDED_)
@@ -0,0 +1,268 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
"#ifdef _WIN32\r\n"
"LANGUAGE 9, 1\r\n"
"#pragma code_page(1252)\r\n"
"#endif //_WIN32\r\n"
"#include ""res\\ImageSpliter.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
"#include ""afxres.rc"" // Standard components\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON DISCARDABLE "res\\ImageSpliter.ico"
IDI_ICON1 ICON DISCARDABLE "res\\icon1.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About ImageSpliter"
FONT 8, "MS Sans Serif"
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
LTEXT "ImageSpliter Version 1.0",IDC_STATIC,40,10,119,8,
SS_NOPREFIX
LTEXT "Copyright (C) 1999",IDC_STATIC,40,25,119,8
DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP
END
IDD_IMAGESPLITER_DIALOG DIALOGEX 0, 0, 251, 167
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "Image Splitter"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "Exit",IDOK,194,146,50,14
LTEXT "Filename",IDC_IMGNAME,16,17,173,8
PUSHBUTTON "Browse",IDC_BROWSE,190,14,50,14
EDITTEXT IDC_OBASE,16,40,164,14,ES_AUTOHSCROLL
PUSHBUTTON "Browse",IDC_BROWSEDIR,190,72,50,14
GROUPBOX "Input File",IDC_STATIC,7,7,237,24
GROUPBOX "Output Base Name",IDC_STATIC,7,31,237,29
GROUPBOX "TargetDir",IDC_STATIC,7,62,237,27
EDITTEXT IDC_TARDIR,16,72,168,14,ES_AUTOHSCROLL
EDITTEXT IDC_FIMAGEX,62,93,40,14,ES_AUTOHSCROLL
LTEXT "Break Into",IDC_STATIC,7,95,34,8
LTEXT "X",IDC_STATIC,109,96,8,8
EDITTEXT IDC_FIMAGEY,121,93,40,14,ES_AUTOHSCROLL
LTEXT "Sized Images",IDC_STATIC,171,95,43,8
PUSHBUTTON "Go",IDC_GO,7,146,50,14
COMBOBOX IDC_OUTFORMAT,55,109,124,87,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
LTEXT "Output Format:",IDC_STATIC,7,111,47,8
GROUPBOX "Naming Convention",IDC_STATIC,7,122,237,22
CONTROL "Reverse Order",IDC_RORDER,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,17,131,68,10
CONTROL "Numbers",IDC_NUMBERS,"Button",BS_AUTORADIOBUTTON,98,130,
44,10
CONTROL "Letters",IDC_LETTERS,"Button",BS_AUTORADIOBUTTON,147,
130,37,10
END
CG_IDD_PROGRESS DIALOG DISCARDABLE 0, 0, 186, 79
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "Cancel",IDCANCEL,67,58,50,14
CONTROL "Progress1",CG_IDC_PROGDLG_PROGRESS,"msctls_progress32",
WS_BORDER,15,34,154,13
LTEXT " 0 %",CG_IDC_PROGDLG_PERCENT,85,23,18,8
LTEXT "",CG_IDC_PROGDLG_STATUS,13,7,158,8
END
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0"
BEGIN
VALUE "CompanyName", "\0"
VALUE "FileDescription", "ImageSpliter MFC Application\0"
VALUE "FileVersion", "1, 0, 0, 1\0"
VALUE "InternalName", "ImageSpliter\0"
VALUE "LegalCopyright", "Copyright (C) 1999\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "ImageSpliter.EXE\0"
VALUE "ProductName", "ImageSpliter Application\0"
VALUE "ProductVersion", "1, 0, 0, 1\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_ABOUTBOX, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 228
TOPMARGIN, 7
BOTTOMMARGIN, 48
END
IDD_IMAGESPLITER_DIALOG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 244
TOPMARGIN, 7
BOTTOMMARGIN, 160
END
CG_IDD_PROGRESS, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 179
TOPMARGIN, 7
BOTTOMMARGIN, 72
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Dialog Info
//
IDD_IMAGESPLITER_DIALOG DLGINIT
BEGIN
IDC_OUTFORMAT, 0x403, 4, 0
0x6754, 0x0061,
IDC_OUTFORMAT, 0x403, 4, 0
0x6954, 0x0066,
IDC_OUTFORMAT, 0x403, 4, 0
0x6152, 0x0077,
IDC_OUTFORMAT, 0x403, 4, 0
0x6e50, 0x0067,
0
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_ABOUTBOX "&About ImageSpliter..."
CG_IDS_PROGRESS_CAPTION "Complete"
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
#include "res\ImageSpliter.rc2" // non-Microsoft Visual C++ edited resources
#include "afxres.rc" // Standard components
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
@@ -0,0 +1,398 @@
// ImageSpliterDlg.cpp : implementation file
//
#include "stdafx.h"
#include "ImageSpliter.h"
#include "ImageSpliterDlg.h"
#include "string.h"
#include "..\..\..\Libraries\ImageLib\Image.h"
#include "ProgDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CImageSpliterDlg dialog
CImageSpliterDlg::CImageSpliterDlg(CWnd* pParent /*=NULL*/)
: CDialog(CImageSpliterDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CImageSpliterDlg)
m_ImgName = _T("");
m_OBase = _T("");
m_tardir = _T("");
m_fimgx = 0;
m_fimgy = 0;
m_OutFormat = -1;
m_RevOrder = FALSE;
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CImageSpliterDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CImageSpliterDlg)
DDX_Text(pDX, IDC_IMGNAME, m_ImgName);
DDX_Text(pDX, IDC_OBASE, m_OBase);
DDX_Text(pDX, IDC_TARDIR, m_tardir);
DDX_Text(pDX, IDC_FIMAGEX, m_fimgx);
DDV_MinMaxInt(pDX, m_fimgx, 0, 999999999);
DDX_Text(pDX, IDC_FIMAGEY, m_fimgy);
DDV_MinMaxInt(pDX, m_fimgy, 0, 999999999);
DDX_CBIndex(pDX, IDC_OUTFORMAT, m_OutFormat);
DDX_Check(pDX, IDC_RORDER, m_RevOrder);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CImageSpliterDlg, CDialog)
//{{AFX_MSG_MAP(CImageSpliterDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BROWSE, OnBrowse)
ON_BN_CLICKED(IDC_BROWSEDIR, OnBrowsedir)
ON_WM_CLOSE()
ON_WM_HSCROLL()
ON_BN_CLICKED(IDC_GO, OnGo)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CImageSpliterDlg message handlers
BOOL CImageSpliterDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
char dname[MAX_PATH];
GetCurrentDirectory(MAX_PATH,dname);
m_tardir=dname;
m_fimgx=m_fimgy=256;
m_OutFormat=1;
UpdateData(FALSE);
CheckDlgButton(IDC_NUMBERS,1);
return TRUE; // return TRUE unless you set the focus to a control
}
void CImageSpliterDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CImageSpliterDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CImageSpliterDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CImageSpliterDlg::OnBrowse()
{
UpdateData(TRUE);
CFileDialog fdlg(TRUE,NULL,NULL,NULL,"Bitmap Images (*.tif,*.gif,*.tga,*.png)|*.tif;*.gif;*.tga;*.png||",NULL);
if(fdlg.DoModal()==IDOK)
{
m_ImgName=fdlg.GetPathName();
m_OBase=fdlg.GetFileName();
m_OBase=m_OBase.Left(m_OBase.GetLength()-4);
UpdateData(FALSE);
}
}
//
// Setup the GameOS structure
//
void __stdcall GetGameOSEnvironment( char* CommandLine )
{
}
void __stdcall ILFree(LPITEMIDLIST pidl);
void CImageSpliterDlg::OnBrowsedir()
{
char pname[MAX_PATH];
BROWSEINFO bi;
bi.hwndOwner =m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = NULL;
bi.lpszTitle = "Choose Target Path...";
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = (LPARAM)this;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
if (SHGetPathFromIDList(pidl,pname))
{
m_tardir=pname;
UpdateData(FALSE);
}
if (bi.pidlRoot)
{
ILFree( const_cast< ITEMIDLIST* >( bi.pidlRoot ) );
}
}
void __stdcall ILFree(LPITEMIDLIST pidl)
{
LPMALLOC pMalloc;
if (pidl)
{
#ifdef DEBUG
UINT cbSize = ILGetSize(pidl);
VALIDATE_PIDL(pidl);
// Fill the memory with some bad value...
_fmemset(pidl, 0xE5, cbSize);
// If large enough try to save the call return address of who
// freed us in the 3-6 byte of the structure.
if (cbSize >= 6)
*((UINT*)((LPSTR)pidl + 2)) = *(((UINT*)&pidl) - 1);
#endif
SHGetMalloc(&pMalloc);
pMalloc->Free( pidl);
pMalloc->Release();
}
}
void CImageSpliterDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
CDialog::OnClose();
}
void CImageSpliterDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
UpdateData(TRUE);
// m_eper.Format("%i%%",m_edist);
UpdateData(FALSE);
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CImageSpliterDlg::OnGo()
{
Image SourceImg,DestImg;
CString str;
CProgressDlg pdlg;
UpdateData(TRUE);
pdlg.Create();
SourceImg.Load((char *)(LPCSTR)m_ImgName);
DestImg.CreateBlank(m_fimgx,m_fimgy,(ITYPE)SourceImg.GetIType(),SourceImg.GetBpp());
CRect dst,src;
dst.top=dst.left=0;
dst.bottom=m_fimgy;
dst.right=m_fimgx;
int img,imgtot,x,y,nx,ny;
img=0;
imgtot=(SourceImg.GetHeight()/m_fimgy)*(SourceImg.GetWidth()/m_fimgx);
for(y=0;y<SourceImg.GetHeight()/m_fimgy;y++)
for(x=0;x<SourceImg.GetWidth()/m_fimgx;x++)
{
src.top=y*m_fimgy;
src.left=x*m_fimgx;
src.bottom=src.top+m_fimgy;
src.right=src.left+m_fimgx;
DestImg.Blt(SourceImg,dst,src);
if(m_RevOrder)
{
ny=((SourceImg.GetHeight()/m_fimgy)-y)-1;
nx=((SourceImg.GetWidth()/m_fimgx)-x)-1;
}
else
{
nx=x;
ny=y;
}
CString str;
if(IsDlgButtonChecked(IDC_NUMBERS))
{
switch(m_OutFormat)
{
case 0:
str.Format("%s\\%s(%03i,%03i).Tga",m_tardir,m_OBase,ny,nx);
DestImg.SaveTga((char *)(LPCSTR)str);
break;
case 1:
str.Format("%s\\%s(%03i,%03i).Tif",m_tardir,m_OBase,ny,nx);
DestImg.SaveTiff((char *)(LPCSTR)str);
break;
case 2:
str.Format("%s\\%s(%03i,%03i).Raw",m_tardir,m_OBase,ny,nx);
DestImg.SaveRaw((char *)(LPCSTR)str);
break;
case 3:
str.Format("%s\\%s(%03i,%03i).Png",m_tardir,m_OBase,ny,nx);
DestImg.SavePng((char *)(LPCSTR)str);
break;
}
}
else
{
switch(m_OutFormat)
{
case 0:
str.Format("%s\\%s%c%c.Tga",m_tardir,m_OBase,'A'+ny,'A'+nx);
DestImg.SaveTga((char *)(LPCSTR)str);
break;
case 1:
str.Format("%s\\%s%c%c.Tif",m_tardir,m_OBase,'A'+ny,'A'+nx);
DestImg.SaveTiff((char *)(LPCSTR)str);
break;
case 2:
str.Format("%s\\%s%c%c.Raw",m_tardir,m_OBase,'A'+ny,'A'+nx);
DestImg.SaveRaw((char *)(LPCSTR)str);
break;
case 3:
str.Format("%s\\%s%c%c.Png",m_tardir,m_OBase,'A'+ny,'A'+nx);
DestImg.SavePng((char *)(LPCSTR)str);
break;
}
}
img++;
pdlg.SetPos((img*100)/imgtot);
}
}
@@ -0,0 +1,74 @@
// ImageSpliterDlg.h : header file
//
#if !defined(AFX_IMAGESPLITERDLG_H__0ACC1CC9_C265_11D2_A5F0_00902712C9AE__INCLUDED_)
#define AFX_IMAGESPLITERDLG_H__0ACC1CC9_C265_11D2_A5F0_00902712C9AE__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class ImgSpace
{
protected:
public:
int Level,Xloc,Yloc;
int LEdge,REdge,TEdge,BEdge;
RECT Dims;
ImgSpace(int lev,int x,int y,RECT &rct) {Level=lev; LEdge=REdge=TEdge=BEdge=Level; Dims=rct; Xloc=x; Yloc=y; }
};
/////////////////////////////////////////////////////////////////////////////
// CImageSpliterDlg dialog
class CImageSpliterDlg : public CDialog
{
// Construction
public:
CImageSpliterDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CImageSpliterDlg)
enum { IDD = IDD_IMAGESPLITER_DIALOG };
CString m_ImgName;
CString m_OBase;
CString m_tardir;
int m_fimgx;
int m_fimgy;
int m_OutFormat;
BOOL m_RevOrder;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CImageSpliterDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CImageSpliterDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnBrowse();
afx_msg void OnBrowsedir();
afx_msg void OnClose();
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnGo();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_IMAGESPLITERDLG_H__0ACC1CC9_C265_11D2_A5F0_00902712C9AE__INCLUDED_)
@@ -0,0 +1,220 @@
// ProgDlg.cpp : implementation file
// CG: This file was added by the Progress Dialog component
#include "stdafx.h"
#include "resource.h"
#include "ProgDlg.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CProgressDlg dialog
CProgressDlg::CProgressDlg(UINT nCaptionID)
{
m_nCaptionID = CG_IDS_PROGRESS_CAPTION;
if (nCaptionID != 0)
m_nCaptionID = nCaptionID;
m_bCancel=FALSE;
m_nLower=0;
m_nUpper=100;
m_nStep=10;
//{{AFX_DATA_INIT(CProgressDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_bParentDisabled = FALSE;
}
CProgressDlg::~CProgressDlg()
{
if(m_hWnd!=NULL)
DestroyWindow();
}
BOOL CProgressDlg::DestroyWindow()
{
ReEnableParent();
return CDialog::DestroyWindow();
}
void CProgressDlg::ReEnableParent()
{
if(m_bParentDisabled && (m_pParentWnd!=NULL))
m_pParentWnd->EnableWindow(TRUE);
m_bParentDisabled=FALSE;
}
BOOL CProgressDlg::Create(CWnd *pParent)
{
// Get the true parent of the dialog
m_pParentWnd = CWnd::GetSafeOwner(pParent);
// m_bParentDisabled is used to re-enable the parent window
// when the dialog is destroyed. So we don't want to set
// it to TRUE unless the parent was already enabled.
if((m_pParentWnd!=NULL) && m_pParentWnd->IsWindowEnabled())
{
m_pParentWnd->EnableWindow(FALSE);
m_bParentDisabled = TRUE;
}
if(!CDialog::Create(CProgressDlg::IDD,pParent))
{
ReEnableParent();
return FALSE;
}
return TRUE;
}
void CProgressDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CProgressDlg)
DDX_Control(pDX, CG_IDC_PROGDLG_PROGRESS, m_Progress);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CProgressDlg, CDialog)
//{{AFX_MSG_MAP(CProgressDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CProgressDlg::SetStatus(LPCTSTR lpszMessage)
{
ASSERT(m_hWnd); // Don't call this _before_ the dialog has
// been created. Can be called from OnInitDialog
CWnd *pWndStatus = GetDlgItem(CG_IDC_PROGDLG_STATUS);
// Verify that the static text control exists
ASSERT(pWndStatus!=NULL);
pWndStatus->SetWindowText(lpszMessage);
}
void CProgressDlg::OnCancel()
{
m_bCancel=TRUE;
}
void CProgressDlg::SetRange(int nLower,int nUpper)
{
m_nLower = nLower;
m_nUpper = nUpper;
m_Progress.SetRange(nLower,nUpper);
}
int CProgressDlg::SetPos(int nPos)
{
PumpMessages();
int iResult = m_Progress.SetPos(nPos);
UpdatePercent(nPos);
return iResult;
}
int CProgressDlg::SetStep(int nStep)
{
m_nStep = nStep; // Store for later use in calculating percentage
return m_Progress.SetStep(nStep);
}
int CProgressDlg::OffsetPos(int nPos)
{
PumpMessages();
int iResult = m_Progress.OffsetPos(nPos);
UpdatePercent(iResult+nPos);
return iResult;
}
int CProgressDlg::StepIt()
{
PumpMessages();
int iResult = m_Progress.StepIt();
UpdatePercent(iResult+m_nStep);
return iResult;
}
void CProgressDlg::PumpMessages()
{
// Must call Create() before using the dialog
ASSERT(m_hWnd!=NULL);
MSG msg;
// Handle dialog messages
while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if(!IsDialogMessage(&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
BOOL CProgressDlg::CheckCancelButton()
{
// Process all pending messages
PumpMessages();
// Reset m_bCancel to FALSE so that
// CheckCancelButton returns FALSE until the user
// clicks Cancel again. This will allow you to call
// CheckCancelButton and still continue the operation.
// If m_bCancel stayed TRUE, then the next call to
// CheckCancelButton would always return TRUE
BOOL bResult = m_bCancel;
m_bCancel = FALSE;
return bResult;
}
void CProgressDlg::UpdatePercent(int nNewPos)
{
CWnd *pWndPercent = GetDlgItem(CG_IDC_PROGDLG_PERCENT);
int nPercent;
int nDivisor = m_nUpper - m_nLower;
ASSERT(nDivisor>0); // m_nLower should be smaller than m_nUpper
int nDividend = (nNewPos - m_nLower);
ASSERT(nDividend>=0); // Current position should be greater than m_nLower
nPercent = nDividend * 100 / nDivisor;
// Since the Progress Control wraps, we will wrap the percentage
// along with it. However, don't reset 100% back to 0%
if(nPercent!=100)
nPercent %= 100;
// Display the percentage
CString strBuf;
strBuf.Format(_T("%d%c"),nPercent,_T('%'));
CString strCur; // get current percentage
pWndPercent->GetWindowText(strCur);
if (strCur != strBuf)
pWndPercent->SetWindowText(strBuf);
}
/////////////////////////////////////////////////////////////////////////////
// CProgressDlg message handlers
BOOL CProgressDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_Progress.SetRange(m_nLower,m_nUpper);
m_Progress.SetStep(m_nStep);
m_Progress.SetPos(m_nLower);
CString strCaption;
VERIFY(strCaption.LoadString(m_nCaptionID));
SetWindowText(strCaption);
return TRUE;
}
@@ -0,0 +1,68 @@
// ProgDlg.h : header file
// CG: This file was added by the Progress Dialog component
/////////////////////////////////////////////////////////////////////////////
// CProgressDlg dialog
#ifndef __PROGDLG_H__
#define __PROGDLG_H__
class CProgressDlg : public CDialog
{
// Construction / Destruction
public:
CProgressDlg(UINT nCaptionID = 0); // standard constructor
~CProgressDlg();
BOOL Create(CWnd *pParent=NULL);
// Checking for Cancel button
BOOL CheckCancelButton();
// Progress Dialog manipulation
void SetStatus(LPCTSTR lpszMessage);
void SetRange(int nLower,int nUpper);
int SetStep(int nStep);
int SetPos(int nPos);
int OffsetPos(int nPos);
int StepIt();
// Dialog Data
//{{AFX_DATA(CProgressDlg)
enum { IDD = CG_IDD_PROGRESS };
CProgressCtrl m_Progress;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CProgressDlg)
public:
virtual BOOL DestroyWindow();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
UINT m_nCaptionID;
int m_nLower;
int m_nUpper;
int m_nStep;
BOOL m_bCancel;
BOOL m_bParentDisabled;
void ReEnableParent();
virtual void OnCancel();
virtual void OnOK() {};
void UpdatePercent(int nCurrent);
void PumpMessages();
// Generated message map functions
//{{AFX_MSG(CProgressDlg)
virtual BOOL OnInitDialog();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif // __PROGDLG_H__
@@ -0,0 +1,88 @@
========================================================================
MICROSOFT FOUNDATION CLASS LIBRARY : ImageSpliter
========================================================================
AppWizard has created this ImageSpliter application for you. This application
not only demonstrates the basics of using the Microsoft Foundation classes
but is also a starting point for writing your application.
This file contains a summary of what you will find in each of the files that
make up your ImageSpliter application.
ImageSpliter.dsp
This file (the project file) contains information at the project level and
is used to build a single project or subproject. Other users can share the
project (.dsp) file, but they should export the makefiles locally.
ImageSpliter.h
This is the main header file for the application. It includes other
project specific headers (including Resource.h) and declares the
CImageSpliterApp application class.
ImageSpliter.cpp
This is the main application source file that contains the application
class CImageSpliterApp.
ImageSpliter.rc
This is a listing of all of the Microsoft Windows resources that the
program uses. It includes the icons, bitmaps, and cursors that are stored
in the RES subdirectory. This file can be directly edited in Microsoft
Visual C++.
ImageSpliter.clw
This file contains information used by ClassWizard to edit existing
classes or add new classes. ClassWizard also uses this file to store
information needed to create and edit message maps and dialog data
maps and to create prototype member functions.
res\ImageSpliter.ico
This is an icon file, which is used as the application's icon. This
icon is included by the main resource file ImageSpliter.rc.
res\ImageSpliter.rc2
This file contains resources that are not edited by Microsoft
Visual C++. You should place all resources not editable by
the resource editor in this file.
/////////////////////////////////////////////////////////////////////////////
AppWizard creates one dialog class:
ImageSpliterDlg.h, ImageSpliterDlg.cpp - the dialog
These files contain your CImageSpliterDlg class. This class defines
the behavior of your application's main dialog. The dialog's
template is in ImageSpliter.rc, which can be edited in Microsoft
Visual C++.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named ImageSpliter.pch and a precompiled types file named StdAfx.obj.
Resource.h
This is the standard header file, which defines new resource IDs.
Microsoft Visual C++ reads and updates this file.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" to indicate parts of the source code you
should add to or customize.
If your application uses MFC in a shared DLL, and your application is
in a language other than the operating system's current language, you
will need to copy the corresponding localized resources MFC42XXX.DLL
from the Microsoft Visual C++ CD-ROM onto the system or system32 directory,
and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation.
For example, MFC42DEU.DLL contains resources translated to German.) If you
don't do this, some of the UI elements of your application will remain in the
language of the operating system.
/////////////////////////////////////////////////////////////////////////////
@@ -0,0 +1,8 @@
// stdafx.cpp : source file that includes just the standard includes
// ImageSpliter.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
@@ -0,0 +1,27 @@
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__0ACC1CCB_C265_11D2_A5F0_00902712C9AE__INCLUDED_)
#define AFX_STDAFX_H__0ACC1CCB_C265_11D2_A5F0_00902712C9AE__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxdisp.h> // MFC Automation classes
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__0ACC1CCB_C265_11D2_A5F0_00902712C9AE__INCLUDED_)
@@ -0,0 +1,13 @@
//
// IMAGESPLITER.RC2 - resources Microsoft Visual C++ does not edit directly
//
#ifdef APSTUDIO_INVOKED
#error this file is not editable by Microsoft Visual C++
#endif //APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
// Add manually edited resources here...
/////////////////////////////////////////////////////////////////////////////
@@ -0,0 +1,46 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by ImageSpliter.rc
//
#define IDM_ABOUTBOX 0x0010
#define IDD_ABOUTBOX 100
#define IDS_ABOUTBOX 101
#define IDD_IMAGESPLITER_DIALOG 102
#define CG_IDD_PROGRESS 103
#define CG_IDS_PROGRESS_CAPTION 104
#define IDR_MAINFRAME 128
#define IDI_ICON1 130
#define IDC_IMGNAME 1000
#define IDC_BROWSE 1001
#define IDC_ROWS 1003
#define CG_IDC_PROGDLG_PROGRESS 1003
#define IDC_COLS 1004
#define CG_IDC_PROGDLG_PERCENT 1004
#define IDC_SPLIT 1005
#define CG_IDC_PROGDLG_STATUS 1005
#define IDC_OBASE 1006
#define IDC_TARDIR 1007
#define IDC_BROWSEDIR 1008
#define IDC_PPSEG 1011
#define IDC_BDPIXSEL 1012
#define IDC_USEEDGEBLEND 1015
#define IDC_EDGEDIST 1016
#define IDC_EDGEAMOUNT 1017
#define IDC_FIMAGEX 1019
#define IDC_FIMAGEY 1020
#define IDC_GO 1021
#define IDC_OUTFORMAT 1022
#define IDC_RORDER 1023
#define IDC_NUMBERS 1024
#define IDC_LETTERS 1025
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 132
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1026
#define _APS_NEXT_SYMED_VALUE 105
#endif
#endif