Rev 1 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#ifndef __GAME_EXE_H__#define __GAME_EXE_H__#include "CyString.h"#include "lists.h"#include "File.h"#define EXEFLAG_NONE 0#define EXEFLAG_TCTEXT 1#define EXEFLAG_MYDOCLOG 2#define EXEFLAG_NOXOR 4#define EXEFLAG_NOSAVESUBDIR 8#define EXEFLAG_ADDON 16#define EXE_VERSIONPOS 7#define EXE_VERSION_NAMESTART (EXE_VERSIONPOS + 2)#define EXE_VERSION_SIZESTART (EXE_VERSIONPOS + 1)tstruct SGameExeVersion {CyString sName;int iName;CyString fVersion;CLinkList<int> lSize;} SGameExeVersion;tstruct SGameExe {CyString sExe;CyString sName;CyString sModKey;int iFlags;int iMaxPatch;int iName;CyString sMyDoc;CyString sAddon;int iAddonTo;CLinkList<SGameExeVersion> lVersions;} SGameExe;class SPKEXPORT CGameExe{public:void Reset();void ParseExe(CyString line);int ParseFlags(CyString flags);bool ReadFile(CyString file);int AddExe(CyString exe);int FindExe(CyString exe);SGameExe *GetGameExe(CyString exe);int FindVersion(int exe, int size, CyString *fVersion);int FindVersion(CyString exe, int size, CyString *fVersion);int GetGameType(CyString gameExe);int GetGameVersion(CyString gameExe, CyString *fVersion);bool GetGameVersionName(CyString gameExe, CyString *versionName);CyString ExtractGameName(CyString dir);CyString GetGameRunExe(CyString dir);CyString GetGameName(CyString gameExe);CyString GetGameNameFromType(int type);CyString GetGameVersionFromType(int game, int gameVersion, CyString fGameVersion);CyString GetGameDir(CyString dir);CyString GetProperDir(CyString dir);CyString GetAddonDir(CyString dir);int GetGameAddons(CyString dir, CyStringList &exe);int GetGameFlags(int game);int GetMaxPatch(int game);CyString GetModKey(int game);int ConvertGameType(int gametype, int *version);int GetNumGames() { return m_lExe.size(); }SGameExe *GetGame(int game) { if ( game >= 0 && game < m_lExe.size() ) return m_lExe[game]; return NULL; }private:void _SetExeName(CyString *sName, int *iName, CyString n);CLinkList<SGameExe> m_lExe;};#endif //__GAME_EXE_H__