Mercurial > otakunoraifu
diff system/file.h @ 53:ddbcbd000206
* MuSys, AyuSysConfig, FileSearcher (former FILESEARCHER) and KeyHolder (former KEYHOLDER) are now singletons
* ParseMoji moved to TextStream
* Some cleaning (0 -> NULL when needed, removal of useless returns, ...)
author | thib |
---|---|
date | Sun, 19 Apr 2009 11:44:05 +0000 |
parents | 15a18fbe6f21 |
children | 4416cfac86ae |
line wrap: on
line diff
--- a/system/file.h +++ b/system/file.h @@ -1,6 +1,6 @@ /* file.h : KANON の圧縮ファイル・PDT ファイル(画像ファイル)の展開の * ためのクラス - * class FILESEARCH : ファイルの管理を行う + * class FileSearcher : ファイルの管理を行う * class ARCINFO : 書庫ファイルの中の1つのファイルを扱うクラス * class PDTCONV : PDT ファイルの展開を行う。 */ @@ -87,7 +87,7 @@ static int write_little_endian_short(cha /********************************************* -** FILESEARCH: +** FileSearcher: ** 書庫ファイル/ディレクトリを含め、 ** 全ファイルの管理を行う。 ** @@ -106,17 +106,28 @@ class SCN2kFILE; class ARCINFO; class ARCFILE_ATOM; -class KEYHOLDER { +class KeyHolder { public: + static KeyHolder* GetInstance(void); + static void Quit(void); + void SetKey(char[16]); void SetKey2(char[33]); void GuessKey(char*); + + private: + KeyHolder(){} + ~KeyHolder(){} + + public: const char* GetKey(void); + private: char key[16]; + static KeyHolder* _singleton; }; -class FILESEARCH { +class FileSearcher { public: #define TYPEMAX 14 enum FILETYPE { @@ -136,20 +147,11 @@ class FILESEARCH { GAN = 13 /* default : MOV */ }; enum ARCTYPE {ATYPE_DIR, ATYPE_ARC, ATYPE_SCN2k}; - private: - /* InitRoot() の時点で初期化される変数 */ - DIRFILE* root_dir; - DIRFILE* dat_dir; - ARCFILE* searcher[TYPEMAX]; - /* ファイルの存在位置の information */ - ARCTYPE is_archived[TYPEMAX]; - const char* filenames[TYPEMAX]; - /* デフォルトの information */ - static ARCTYPE default_is_archived[TYPEMAX]; - static const char* default_dirnames[TYPEMAX]; + public: - FILESEARCH(void); - ~FILESEARCH(); + static FileSearcher* GetInstance(void); + static void Quit(void); + /* 初めにゲームのデータがあるディレクトリを設定する必要がある */ int InitRoot(char* root); /* ファイルの型ごとの情報をセットする */ @@ -165,6 +167,23 @@ class FILESEARCH { ** 末尾は NULL pointer */ char** ListAll(FILETYPE type); + + private: + FileSearcher(void); + ~FileSearcher(); + + private: + /* InitRoot() の時点で初期化される変数 */ + DIRFILE* root_dir; + DIRFILE* dat_dir; + ARCFILE* searcher[TYPEMAX]; + /* ファイルの存在位置の information */ + ARCTYPE is_archived[TYPEMAX]; + const char* filenames[TYPEMAX]; + /* デフォルトの information */ + static ARCTYPE default_is_archived[TYPEMAX]; + static const char* default_dirnames[TYPEMAX]; + static FileSearcher *_singleton; }; class ARCINFO { @@ -231,7 +250,4 @@ class GRPCONV { void CopyRGB_rev(char* image, const char* from); }; -extern FILESEARCH file_searcher; -extern KEYHOLDER key_holder; - #endif // !defined(__KANON_FILE_H__)