diff system/file.h @ 52:15a18fbe6f21

* Known bugs added to the README * Code cleaning (0 -> NULL when needed, indentation, spaces, ...)
author thib
date Sat, 18 Apr 2009 18:35:39 +0000
parents 5f548e5957a8
children ddbcbd000206
line wrap: on
line diff
--- a/system/file.h
+++ b/system/file.h
@@ -34,10 +34,10 @@
 
 // read 'KANON' compressed file
 
-#include<stdio.h>
-#include<stdlib.h>
-#include<string.h>
-#include<sys/types.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
 
 #ifdef HAVE_CONFIG_H
 #  include "config.h"
@@ -107,128 +107,128 @@ class ARCINFO;
 class ARCFILE_ATOM;
 
 class KEYHOLDER {
-public:
-	void SetKey(char[16]);
-	void SetKey2(char[33]);
-	void GuessKey(char*);
-	const char* GetKey(void);
-private:
-	char key[16];
+	public:
+		void SetKey(char[16]);
+		void SetKey2(char[33]);
+		void GuessKey(char*);
+		const char* GetKey(void);
+	private:
+		char key[16];
 };
 
 class FILESEARCH {
-public:
+	public:
 #define TYPEMAX 14
-	enum FILETYPE {
-		/* 一応、0 - 15 まで reserved */
-		ALL = 1, /* dat/ 以下のファイル(デフォルトの検索先) */
-		ROOT= 2, /* ゲームのインストールディレクトリ */
-		PDT = 3, /* default: PDT/ */
-		SCN = 4, /* default: DAT/SEEN.TXT */
-		ANM = 5, /* default: DAT/ALLANM.ANL */
-		ARD = 6, /* default: DAT/ALLARD.ARD */
-		CUR = 7, /* default: DAT/ALLCUR.CUR */
-		MID = 8, /* default: ALL */
-		WAV = 9, /* default: ALL */
-		KOE = 10, /* default: KOE/ */
-		BGM = 11, /* default: BGM */
-		MOV = 12, /* default : MOV */
-		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();
-	/* 初めにゲームのデータがあるディレクトリを設定する必要がある */
-	int InitRoot(char* root);
-	/* ファイルの型ごとの情報をセットする */
-	void SetFileInformation(FILETYPE type, ARCTYPE is_arc,
-		char* filename);
-	/* 複数のファイルを一つの型に関連づける */
-	void AppendFileInformation(FILETYPE type, ARCTYPE is_arc,
-		char* filename);
-	ARCFILE* MakeARCFILE(ARCTYPE tp, const char* filename);
-	/* fname で指定された名前のファイルを検索 */
-	class ARCINFO* Find(FILETYPE type, const char* fname, const char* ext=0);
-	/* ある種類のファイルをすべてリストアップ
-	** 末尾は NULL pointer
-	*/
-	char** ListAll(FILETYPE type);
+		enum FILETYPE {
+			/* 一応、0 - 15 まで reserved */
+			ALL = 1, /* dat/ 以下のファイル(デフォルトの検索先) */
+			ROOT= 2, /* ゲームのインストールディレクトリ */
+			PDT = 3, /* default: PDT/ */
+			SCN = 4, /* default: DAT/SEEN.TXT */
+			ANM = 5, /* default: DAT/ALLANM.ANL */
+			ARD = 6, /* default: DAT/ALLARD.ARD */
+			CUR = 7, /* default: DAT/ALLCUR.CUR */
+			MID = 8, /* default: ALL */
+			WAV = 9, /* default: ALL */
+			KOE = 10, /* default: KOE/ */
+			BGM = 11, /* default: BGM */
+			MOV = 12, /* default : MOV */
+			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();
+		/* 初めにゲームのデータがあるディレクトリを設定する必要がある */
+		int InitRoot(char* root);
+		/* ファイルの型ごとの情報をセットする */
+		void SetFileInformation(FILETYPE type, ARCTYPE is_arc,
+			char* filename);
+		/* 複数のファイルを一つの型に関連づける */
+		void AppendFileInformation(FILETYPE type, ARCTYPE is_arc,
+			char* filename);
+		ARCFILE* MakeARCFILE(ARCTYPE tp, const char* filename);
+		/* fname で指定された名前のファイルを検索 */
+		class ARCINFO* Find(FILETYPE type, const char* fname, const char* ext=0);
+		/* ある種類のファイルをすべてリストアップ
+		** 末尾は NULL pointer
+		*/
+		char** ListAll(FILETYPE type);
 };
 
 class ARCINFO {
-protected:
-	/* ファイルそのものの情報 */
-	ARCFILE_ATOM& info;
-	char* arcfile;
-	/* mmap している場合、その情報 */
-	bool use_mmap;
-	char* mmapped_memory;
-	int fd;
-	/* ファイル内容の入っているバッファ */
-	const char* data;
+	protected:
+		/* ファイルそのものの情報 */
+		ARCFILE_ATOM& info;
+		char* arcfile;
+		/* mmap している場合、その情報 */
+		bool use_mmap;
+		char* mmapped_memory;
+		int fd;
+		/* ファイル内容の入っているバッファ */
+		const char* data;
 
-protected:
-	ARCINFO(const char* arcfile, ARCFILE_ATOM& from); // only from ARCFILE
-	friend class ARCFILE;
-	friend class DIRFILE;
+	protected:
+		ARCINFO(const char* arcfile, ARCFILE_ATOM& from); // only from ARCFILE
+		friend class ARCFILE;
+		friend class DIRFILE;
 
-	virtual bool ExecExtract(void);
-public:
-	/* dest は256byte 程度の余裕があること */
-	static void Extract(char*& dest, char*& src, char* destend, char* srcend);
-	static void Extract2k(char*& dest, char*& src, char* destend, char* srcend);
-	virtual ~ARCINFO();
-	/* 必要なら Read 前に呼ぶことで処理を分割できる */
-	int Size(void) const;
-	char* CopyRead(void); /* Read() して内容のコピーを返す */
-	const char* Read(void);
-	/* ファイルが regular file の場合、ファイル名を帰す */
-	/* そうでないなら 0 を帰す */
-	const char* Path(void) const;
-	FILE* OpenFile(int* length=0) const; /* 互換性のため:raw file の場合、ファイルを開く */
+		virtual bool ExecExtract(void);
+	public:
+		/* dest は256byte 程度の余裕があること */
+		static void Extract(char*& dest, char*& src, char* destend, char* srcend);
+		static void Extract2k(char*& dest, char*& src, char* destend, char* srcend);
+		virtual ~ARCINFO();
+		/* 必要なら Read 前に呼ぶことで処理を分割できる */
+		int Size(void) const;
+		char* CopyRead(void); /* Read() して内容のコピーを返す */
+		const char* Read(void);
+		/* ファイルが regular file の場合、ファイル名を帰す */
+		/* そうでないなら 0 を帰す */
+		const char* Path(void) const;
+		FILE* OpenFile(int* length=0) const; /* 互換性のため:raw file の場合、ファイルを開く */
 };
 
 class GRPCONV {
-public:
-	int width;
-	int height;
-	bool is_mask;
+	public:
+		int width;
+		int height;
+		bool is_mask;
 
-	const char* filename;
-	const char* data;
-	int datalen;
+		const char* filename;
+		const char* data;
+		int datalen;
 
-	int Width(void) { return width;}
-	int Height(void) { return height;}
-	bool IsMask(void) { return is_mask;}
+		int Width(void) { return width;}
+		int Height(void) { return height;}
+		bool IsMask(void) { return is_mask;}
 
-	GRPCONV(void);
-	virtual ~GRPCONV();
-	void Init(const char* fname, const char* data, int dlen, int width, int height, bool is_mask);
+		GRPCONV(void);
+		virtual ~GRPCONV();
+		void Init(const char* fname, const char* data, int dlen, int width, int height, bool is_mask);
 
-	virtual bool Read(char* image) = 0;
-	static GRPCONV* AssignConverter(const char* inbuf, int inlen, const char* fname);
-	static GRPCONV* AssignConverter(ARCINFO* info) {
-		const char* dat = info->Read();
-		if (dat == 0) return 0;
-		return AssignConverter(dat, info->Size(), "???");
-	}
-	void CopyRGBA(char* image, const char* from);
-	void CopyRGB(char* image, const char* from);
-	void CopyRGBA_rev(char* image, const char* from);
-	void CopyRGB_rev(char* image, const char* from);
+		virtual bool Read(char* image) = 0;
+		static GRPCONV* AssignConverter(const char* inbuf, int inlen, const char* fname);
+		static GRPCONV* AssignConverter(ARCINFO* info) {
+			const char* dat = info->Read();
+			if (dat == 0) return 0;
+			return AssignConverter(dat, info->Size(), info->Path()); //FIXME: Is it really okay?
+		}
+		void CopyRGBA(char* image, const char* from);
+		void CopyRGB(char* image, const char* from);
+		void CopyRGBA_rev(char* image, const char* from);
+		void CopyRGB_rev(char* image, const char* from);
 };
 
 extern FILESEARCH file_searcher;