Mercurial > otakunoraifu
comparison 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 |
comparison
equal
deleted
inserted
replaced
52:15a18fbe6f21 | 53:ddbcbd000206 |
---|---|
1 /* file.h : KANON の圧縮ファイル・PDT ファイル(画像ファイル)の展開の | 1 /* file.h : KANON の圧縮ファイル・PDT ファイル(画像ファイル)の展開の |
2 * ためのクラス | 2 * ためのクラス |
3 * class FILESEARCH : ファイルの管理を行う | 3 * class FileSearcher : ファイルの管理を行う |
4 * class ARCINFO : 書庫ファイルの中の1つのファイルを扱うクラス | 4 * class ARCINFO : 書庫ファイルの中の1つのファイルを扱うクラス |
5 * class PDTCONV : PDT ファイルの展開を行う。 | 5 * class PDTCONV : PDT ファイルの展開を行う。 |
6 */ | 6 */ |
7 | 7 |
8 /* | 8 /* |
85 return c; | 85 return c; |
86 } | 86 } |
87 | 87 |
88 | 88 |
89 /********************************************* | 89 /********************************************* |
90 ** FILESEARCH: | 90 ** FileSearcher: |
91 ** 書庫ファイル/ディレクトリを含め、 | 91 ** 書庫ファイル/ディレクトリを含め、 |
92 ** 全ファイルの管理を行う。 | 92 ** 全ファイルの管理を行う。 |
93 ** | 93 ** |
94 ** 最初に、設定ファイルからファイルの種類ごとに | 94 ** 最初に、設定ファイルからファイルの種類ごとに |
95 ** 実際に入っているディレクトリ、書庫を設定する | 95 ** 実際に入っているディレクトリ、書庫を設定する |
104 class SCN2kFILE; | 104 class SCN2kFILE; |
105 /* ARCINFO はファイルを読み込むために必要 */ | 105 /* ARCINFO はファイルを読み込むために必要 */ |
106 class ARCINFO; | 106 class ARCINFO; |
107 class ARCFILE_ATOM; | 107 class ARCFILE_ATOM; |
108 | 108 |
109 class KEYHOLDER { | 109 class KeyHolder { |
110 public: | 110 public: |
111 static KeyHolder* GetInstance(void); | |
112 static void Quit(void); | |
113 | |
111 void SetKey(char[16]); | 114 void SetKey(char[16]); |
112 void SetKey2(char[33]); | 115 void SetKey2(char[33]); |
113 void GuessKey(char*); | 116 void GuessKey(char*); |
117 | |
118 private: | |
119 KeyHolder(){} | |
120 ~KeyHolder(){} | |
121 | |
122 public: | |
114 const char* GetKey(void); | 123 const char* GetKey(void); |
124 | |
115 private: | 125 private: |
116 char key[16]; | 126 char key[16]; |
117 }; | 127 static KeyHolder* _singleton; |
118 | 128 }; |
119 class FILESEARCH { | 129 |
130 class FileSearcher { | |
120 public: | 131 public: |
121 #define TYPEMAX 14 | 132 #define TYPEMAX 14 |
122 enum FILETYPE { | 133 enum FILETYPE { |
123 /* 一応、0 - 15 まで reserved */ | 134 /* 一応、0 - 15 まで reserved */ |
124 ALL = 1, /* dat/ 以下のファイル(デフォルトの検索先) */ | 135 ALL = 1, /* dat/ 以下のファイル(デフォルトの検索先) */ |
134 BGM = 11, /* default: BGM */ | 145 BGM = 11, /* default: BGM */ |
135 MOV = 12, /* default : MOV */ | 146 MOV = 12, /* default : MOV */ |
136 GAN = 13 /* default : MOV */ | 147 GAN = 13 /* default : MOV */ |
137 }; | 148 }; |
138 enum ARCTYPE {ATYPE_DIR, ATYPE_ARC, ATYPE_SCN2k}; | 149 enum ARCTYPE {ATYPE_DIR, ATYPE_ARC, ATYPE_SCN2k}; |
139 private: | 150 |
140 /* InitRoot() の時点で初期化される変数 */ | 151 public: |
141 DIRFILE* root_dir; | 152 static FileSearcher* GetInstance(void); |
142 DIRFILE* dat_dir; | 153 static void Quit(void); |
143 ARCFILE* searcher[TYPEMAX]; | 154 |
144 /* ファイルの存在位置の information */ | |
145 ARCTYPE is_archived[TYPEMAX]; | |
146 const char* filenames[TYPEMAX]; | |
147 /* デフォルトの information */ | |
148 static ARCTYPE default_is_archived[TYPEMAX]; | |
149 static const char* default_dirnames[TYPEMAX]; | |
150 public: | |
151 FILESEARCH(void); | |
152 ~FILESEARCH(); | |
153 /* 初めにゲームのデータがあるディレクトリを設定する必要がある */ | 155 /* 初めにゲームのデータがあるディレクトリを設定する必要がある */ |
154 int InitRoot(char* root); | 156 int InitRoot(char* root); |
155 /* ファイルの型ごとの情報をセットする */ | 157 /* ファイルの型ごとの情報をセットする */ |
156 void SetFileInformation(FILETYPE type, ARCTYPE is_arc, | 158 void SetFileInformation(FILETYPE type, ARCTYPE is_arc, |
157 char* filename); | 159 char* filename); |
163 class ARCINFO* Find(FILETYPE type, const char* fname, const char* ext=0); | 165 class ARCINFO* Find(FILETYPE type, const char* fname, const char* ext=0); |
164 /* ある種類のファイルをすべてリストアップ | 166 /* ある種類のファイルをすべてリストアップ |
165 ** 末尾は NULL pointer | 167 ** 末尾は NULL pointer |
166 */ | 168 */ |
167 char** ListAll(FILETYPE type); | 169 char** ListAll(FILETYPE type); |
170 | |
171 private: | |
172 FileSearcher(void); | |
173 ~FileSearcher(); | |
174 | |
175 private: | |
176 /* InitRoot() の時点で初期化される変数 */ | |
177 DIRFILE* root_dir; | |
178 DIRFILE* dat_dir; | |
179 ARCFILE* searcher[TYPEMAX]; | |
180 /* ファイルの存在位置の information */ | |
181 ARCTYPE is_archived[TYPEMAX]; | |
182 const char* filenames[TYPEMAX]; | |
183 /* デフォルトの information */ | |
184 static ARCTYPE default_is_archived[TYPEMAX]; | |
185 static const char* default_dirnames[TYPEMAX]; | |
186 static FileSearcher *_singleton; | |
168 }; | 187 }; |
169 | 188 |
170 class ARCINFO { | 189 class ARCINFO { |
171 protected: | 190 protected: |
172 /* ファイルそのものの情報 */ | 191 /* ファイルそのものの情報 */ |
229 void CopyRGB(char* image, const char* from); | 248 void CopyRGB(char* image, const char* from); |
230 void CopyRGBA_rev(char* image, const char* from); | 249 void CopyRGBA_rev(char* image, const char* from); |
231 void CopyRGB_rev(char* image, const char* from); | 250 void CopyRGB_rev(char* image, const char* from); |
232 }; | 251 }; |
233 | 252 |
234 extern FILESEARCH file_searcher; | |
235 extern KEYHOLDER key_holder; | |
236 | |
237 #endif // !defined(__KANON_FILE_H__) | 253 #endif // !defined(__KANON_FILE_H__) |