-
Notifications
You must be signed in to change notification settings - Fork 0
/
NifCopyDlg.h
183 lines (140 loc) · 5.38 KB
/
NifCopyDlg.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
/*===========================================================================
*
* File: Nifcopydlg.H
* Author: Dave Humphrey (uesp@m0use.net)
* Created On: October 19, 2003
*
* Description
*
*=========================================================================*/
#ifndef __NIFCOPYDLG_H
#define __NIFCOPYDLG_H
/*===========================================================================
*
* Begin Required Includes
*
*=========================================================================*/
#include "csvfile.h"
#include "Niffile.h"
#include "ptrarray.h"
#include "NifSourceTexture.h"
#include "NifMaterialProperty.h"
/*===========================================================================
* End of Required Includes
*=========================================================================*/
/*===========================================================================
*
* Begin Definitions
*
*=========================================================================*/
/* File filters and extensions */
#define NIFCOPY_NIF_EXT _T("nif")
#define NIFCOPY_CSV_EXT _T("csv")
#define NIFCOPY_NIF_FILTER _T("NIF Files (*.nif)|*.nif|All Files (*.*)|*.*||")
#define NIFCOPY_CSV_FILTER _T("CSV Files (*.csv)|*.csv|Text Files (*.txt)|*.txt|All Files (*.*)|*.*||")
/* List options */
#define NIFCOPY_LIST_INDEXWIDTH 25
#define NIFCOPY_LIST_COLWIDTH 100
/* Csv file columns */
#define NIFCOPY_CSV_FILENAME _T("Filename")
/*===========================================================================
* End of Definitions
*=========================================================================*/
/*===========================================================================
*
* Begin Type Definitions
*
*=========================================================================*/
/* Holds information on a single source texture record */
class CNifCopyInfo {
public:
CNifMaterialProperty* pMaterialProperty;
CNifSourceTexture* pSourceTexture; /* Source texture record */
CSString OrigTexture; /* Original texture name */
int CsvColIndex; /* Index in the CSV file */
};
/* Pointer array of info records */
typedef TPtrArray<CNifCopyInfo> CNifCopyInfoArray;
/*===========================================================================
* End of Type Definitions
*=========================================================================*/
/*===========================================================================
*
* Begin Class CNifCopyDlg Definition
*
*=========================================================================*/
class CNifCopyDlg : public CDialog {
/*---------- Begin Protected Class Members -------------------------*/
protected:
CCsvFile m_CsvFile; /* Csv input file data */
CNifFile m_NifFile; /* Nif input/output file data */
CString m_InputCsv; /* Csv input filename */
CString m_InputNif; /* Nif input filename */
bool m_OverWriteFiles; /* Options */
CNifCopyInfoArray m_CopyInfos; /* Array of copy info records */
int m_FilenameColIndex;
int m_CreatedFiles;
/*---------- Begin Protected Class Methods -------------------------*/
protected:
/* Attempt to add a new copy info record */
CNifCopyInfo* AddCopyInfo (void);
/* Check the validity of the current data */
bool CheckData (void);
bool CheckCsvColumns (void);
/* Delete all allocated copy info records */
void ClearCopyInfos (void);
/* Create the copy info records */
bool CreateCopyInfos (void);
/* Update the contents of the csv list */
void ClearCsvList (void);
void CreateCsvColumns (void);
void FillCsvList (void);
/* Create the nif files */
bool CreateFiles (void);
bool CreateFile (CCsvRow* pRow);
void ResetInputNif (void);
bool UpdateTextures (CCsvRow* pRow);
/* Update the contents of the texture list */
void FillTextureList (void);
/*---------- Begin Public Class Methods ----------------------------*/
public:
/* Construction */
CNifCopyDlg(CWnd* pParent = NULL);
~CNifCopyDlg();
/* Set/get the control data */
void GetControlData (void);
void SetControlData (void);
/* Dialog Data */
//{{AFX_DATA(CNifCopyDlg)
enum { IDD = IDD_NIFCOPY_DLG };
CListBox m_TextureList;
CListCtrl m_CsvList;
CButton m_OverwriteCheck;
CEdit m_CsvFilename;
CEdit m_NifFilename;
//}}AFX_DATA
/* ClassWizard generated virtual function overrides */
//{{AFX_VIRTUAL(CNifCopyDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX);
//}}AFX_VIRTUAL
protected:
/* Generated message map functions */
//{{AFX_MSG(CNifCopyDlg)
afx_msg void OnNifloadButton();
afx_msg void OnCsvloadButton();
afx_msg void OnNifcopyCreate();
afx_msg void OnNifcopyCheck();
virtual BOOL OnInitDialog();
//}}AFX_MSG
DECLARE_MESSAGE_MAP();
};
/*===========================================================================
* End of Class CNifCopyDlg Definition
*=========================================================================*/
//{{AFX_INSERT_LOCATION}}
//}}AFX_INSERT_LOCATION
#endif
/*===========================================================================
* End of File Nifcopydlg.H
*=========================================================================*/