-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathmain.h
180 lines (132 loc) · 4.9 KB
/
main.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
/*############################################################################
## NEONCUBE - RAGNAROK ONLINE PATCH CLIENT (GNU General Public License)
##
## http://openkore.sourceforge.net/neoncube
## (c) 2005 Ansell "Cliffe" Cruz ([email protected])
##
##############################################################################*/
#ifndef _MAIN_H_
#define _MAIN_H_
#include <string>
#include <utility>
#include <vector>
#include <map>
//#include <shellapi.h>
//#include <commctrl.h>
//#include <direct.h>
#include <libgrf/grf.h>
#include "grfcache.h"
#include "neondef.h"
/*#######################################################
## DEFINITIONS OF STATIC CONTROL IDS
########################################################*/
/*#######################################################
## INI SETTINGS
########################################################*/
struct inisetting
{
TCHAR szServerName[100];
TCHAR szNoticeURL[MAXARRSIZE];
TCHAR szPatchURL[MAXARRSIZE];
TCHAR szPatchList[MAXARRSIZE];
TCHAR szExecutable[256];
TCHAR szPatchFolder[MAXARRSIZE];
TCHAR szRegistration[MAXARRSIZE];
TCHAR szGrf[50];
TCHAR szSkin[256];
WORD nBackupGRF;
WORD nStartupOption;
TCHAR szRagExeCall[MAXARRSIZE];
UINT nPatchPort;
UINT fDebugMode;
TCHAR szRarPassword[MAXARRSIZE];
};
typedef std::vector< std::pair<std::string /*patchName*/, int /*patchDest*/> > LOCALPATCHLISTING;
typedef std::map< std::string, Grf* > LOCALPATCHITEMCONTAINER; // second member = 0 means FLD
int ProcessPatchLine(GrfCache *, LOCALPATCHITEMCONTAINER *, const std::pair<std::string /*patchName*/, int /*patchDest*/> &, bool &isDirty);
bool RepackGrf(GrfCache *, LOCALPATCHITEMCONTAINER *, const char *targetPath, bool shouldFullRepack, Grf *pOriginalGrf);
/*#######################################################
## MAIN WINDOW PROC
########################################################*/
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
/*#######################################################
## SetupNoticeClass()
##
## return value:
##
## TRUE if function succeeds, FALSE otherwise.
########################################################*/
BOOL SetupNoticeClass(HINSTANCE);
void drawNotice(HWND, int);
/*#######################################################
## THREAD FUNCTION: Download process thread function
##
## RETURN VALUE: return value is S_FALSE if an error occured,
## otherwise it returns S_OK
########################################################*/
DWORD CALLBACK Threader(LPVOID);
/*#######################################################
## FUNCTION: Adds an entry to the PATCH structure.
##
## *item: Pointer to a NULL terminated string which
## contains the patch name.
## index: patch index.
##
## fpath: "FLD" or "GRF".
##
## return value: none
########################################################*/
void AddPatchEx(LOCALPATCHLISTING*, LPCTSTR item, INT index, LPCTSTR fpath);
/*#######################################################
## FUNCTION: Adds the current file being extracted to
## data.grf.txt
##
## return value: none
########################################################*/
extern void GRFCreate_AddFile(LPCTSTR item);
/*#######################################################
## Post an error message in a window
##
## @param exitapp - TRUE if the application will exit after
## posting the error message. FALSE otherwise
##
## @param lpezErrMessage - pointer to a NULL terminated string
## which contains the message to be posted
##
##
########################################################*/
void PostError(BOOL exitapp, LPCTSTR lpszErrMessage, ...);
/*#######################################################
## FUNCTION: Print status message
##
## return value: none
########################################################*/
void StatusMessage(LPCTSTR message, ...);
void DelFile(LOCALPATCHLISTING *, LPCTSTR item, LPCTSTR fpath, INT nIndex);
/*#######################################################
## FUNCTION: Error logging
##
## return value: none
########################################################*/
void AddErrorLog(LPCTSTR fmt, ...);
/*#######################################################
## FUNCTION: Debugging use only
##
## return value: none
########################################################*/
void AddDebug(LPCTSTR fmt, ...);
// Exits when the application is already running
// @return value: FALSE if the application is already running, FALSE otherwise
BOOL InitInstance(void);
//---------------------------------------------
// Check for fist existance
// @param lpszFileName - Pointer to a null terminated string (path to file)
// @return value - see enum above
CFFE_ERROR CheckFileForExistance(LPCTSTR lpszFileName);
// Runs an executable
// @param lpszExecutable - path to the executable
BOOL LaunchApp(LPCTSTR lpszExecutable);
extern LPCTSTR GetFileExt(const char *fname);
//adata.grf.txt
extern INT WriteData(LPSTR dir, FILE *hDataGrfTxt);
#endif /*_MAIN_H_*/