1 |
cycrow |
1 |
#ifndef __GAME_EXE_H__
|
|
|
2 |
#define __GAME_EXE_H__
|
|
|
3 |
|
|
|
4 |
#include "CyString.h"
|
|
|
5 |
#include "lists.h"
|
|
|
6 |
#include "File.h"
|
|
|
7 |
|
|
|
8 |
#define EXEFLAG_NONE 0
|
|
|
9 |
#define EXEFLAG_TCTEXT 1
|
|
|
10 |
#define EXEFLAG_MYDOCLOG 2
|
|
|
11 |
#define EXEFLAG_NOXOR 4
|
|
|
12 |
#define EXEFLAG_NOSAVESUBDIR 8
|
|
|
13 |
#define EXEFLAG_ADDON 16
|
|
|
14 |
|
|
|
15 |
#define EXE_VERSIONPOS 7
|
|
|
16 |
#define EXE_VERSION_NAMESTART (EXE_VERSIONPOS + 2)
|
|
|
17 |
#define EXE_VERSION_SIZESTART (EXE_VERSIONPOS + 1)
|
|
|
18 |
|
|
|
19 |
tstruct SGameExeVersion {
|
|
|
20 |
CyString sName;
|
|
|
21 |
int iName;
|
|
|
22 |
CyString fVersion;
|
|
|
23 |
CLinkList<int> lSize;
|
|
|
24 |
} SGameExeVersion;
|
|
|
25 |
|
|
|
26 |
tstruct SGameExe {
|
|
|
27 |
CyString sExe;
|
|
|
28 |
CyString sName;
|
|
|
29 |
CyString sModKey;
|
|
|
30 |
int iFlags;
|
|
|
31 |
int iMaxPatch;
|
|
|
32 |
int iName;
|
|
|
33 |
CyString sMyDoc;
|
|
|
34 |
CyString sAddon;
|
|
|
35 |
int iAddonTo;
|
|
|
36 |
CLinkList<SGameExeVersion> lVersions;
|
|
|
37 |
} SGameExe;
|
|
|
38 |
|
|
|
39 |
class SPKEXPORT CGameExe
|
|
|
40 |
{
|
|
|
41 |
public:
|
|
|
42 |
void Reset();
|
|
|
43 |
|
|
|
44 |
void ParseExe(CyString line);
|
|
|
45 |
int ParseFlags(CyString flags);
|
|
|
46 |
bool ReadFile(CyString file);
|
|
|
47 |
|
|
|
48 |
int AddExe(CyString exe);
|
|
|
49 |
int FindExe(CyString exe);
|
|
|
50 |
SGameExe *GetGameExe(CyString exe);
|
|
|
51 |
|
|
|
52 |
int FindVersion(int exe, int size, CyString *fVersion);
|
|
|
53 |
int FindVersion(CyString exe, int size, CyString *fVersion);
|
|
|
54 |
|
|
|
55 |
int GetGameType(CyString gameExe);
|
|
|
56 |
int GetGameVersion(CyString gameExe, CyString *fVersion);
|
|
|
57 |
bool GetGameVersionName(CyString gameExe, CyString *versionName);
|
|
|
58 |
CyString ExtractGameName(CyString dir);
|
|
|
59 |
CyString GetGameRunExe(CyString dir);
|
|
|
60 |
CyString GetGameName(CyString gameExe);
|
|
|
61 |
CyString GetGameNameFromType(int type);
|
|
|
62 |
CyString GetGameVersionFromType(int game, int gameVersion, CyString fGameVersion);
|
|
|
63 |
CyString GetGameDir(CyString dir);
|
|
|
64 |
CyString GetProperDir(CyString dir);
|
|
|
65 |
CyString GetAddonDir(CyString dir);
|
|
|
66 |
int GetGameAddons(CyString dir, CyStringList &exe);
|
|
|
67 |
int GetGameFlags(int game);
|
|
|
68 |
int GetMaxPatch(int game);
|
|
|
69 |
CyString GetModKey(int game);
|
|
|
70 |
|
|
|
71 |
int ConvertGameType(int gametype, int *version);
|
|
|
72 |
|
|
|
73 |
int GetNumGames() { return m_lExe.size(); }
|
|
|
74 |
SGameExe *GetGame(int game) { if ( game >= 0 && game < m_lExe.size() ) return m_lExe[game]; return NULL; }
|
|
|
75 |
|
|
|
76 |
private:
|
|
|
77 |
void _SetExeName(CyString *sName, int *iName, CyString n);
|
|
|
78 |
|
|
|
79 |
CLinkList<SGameExe> m_lExe;
|
|
|
80 |
};
|
|
|
81 |
|
|
|
82 |
|
|
|
83 |
#endif //__GAME_EXE_H__
|