| 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__
 |