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__