diff system/system_config.h @ 0:223b71206888

Initial import
author thib
date Fri, 01 Aug 2008 16:32:45 +0000
parents
children b6d6c0ffb423
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/system/system_config.h
@@ -0,0 +1,83 @@
+#include<string>
+
+/* CD Track 名 <-> Track 番号の変換を行う */
+class TrackName {
+	char** track;
+	int* track_num;
+	char** track_wave;
+	int* track_start;
+	int deal;
+	void Expand(void);
+	char** se_track;
+	int se_deal;
+	void ExpandSE(int num);
+public:
+	TrackName(void);
+	~TrackName(void);
+	void AddCDROM(char* name, int track);
+	void AddWave(char* name, char* wave, int start_pt);
+	void AddSE(int num, char* se);
+	int CDTrack(char* name);
+	int TrackStart(char* name);
+	const char* WaveTrack(char* name);
+	const char* SETrack(int num);
+};
+/* gameexe.ini で設定されるパラメータ */
+/* まず初めに、設定項目を SetOrigPara* でセットする
+** ただし、設定名は255文字以下である必要がある。
+**
+** SetPara* で設定項目は変更できる
+** また、GetPara* で設定項目を得られる。
+*/
+
+class AyuSysConfig {
+	friend class Conf2; /* テスト用のクラス */
+	int change_flag;
+	int dirty_flag;
+	class AyuSysConfigString* str_config;
+	class AyuSysConfigIntlist* int_config;
+
+public:
+	TrackName track_name;
+
+public:
+	AyuSysConfig(void);
+	bool LoadInitFile(void);
+	/* パラメータを検索する */
+	/* str なら 1, int なら 2, 見つからないなら 0 */
+	int SearchParam(const char* name) const;
+	/* パラメータを得る */
+	const char* GetParaStr(const char* name) const; /* str */
+	int GetParam(const char* name, int deal, ...) const; /* int, error -> return -1, no error -> return 0 */
+	int GetOriginalParam(const char* name, int deal, ...) const; /* int, error -> return -1, no error -> return 0 */
+	int GetParaInt(const char* name) const {
+		int n;
+		if (GetParam(name,1,&n)) return 0;
+		return n;
+	}
+	const int* GetParamArray(const char* name, int& deal) const;
+	/* パラメータを変更する */
+	void SetParaStr(const char* name, const char* var); /* str */
+	void SetParam(const char* name, int deal, ...); /* int */
+private:
+	friend class AyuSys;
+	/* 元設定を行う */
+	/* AyuSys からのみ可能 */
+	void SetOrigParaStr(const char* name, const char* var); /* str */
+	void SetOrigParam(const char* name, int para_deal, ...); /* int */
+	void SetOrigParamArray(const char* name, int deal, int* array); /* 上とおなじ */
+public:
+
+	/* オリジナルの設定関係
+	** SetOriginal : 全ての設定を初めの状態に戻す
+	** DiffOriginal : 初めの状態と現在の状態の変更分を得る
+	** PatchOriginal: DiffOriginal で得た文字列を引数に
+	**   渡す。DiffOriginal 呼び出し時の状態に戻す
+	*/
+	void SetOriginal(void);
+	void DiffOriginal(std::string&);
+	const char* PatchOriginal(const char*);
+	/* config の内容を表示する */
+	void Dump(FILE* f) const;
+};
+