comparison system/system_config.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 5ae5533b3a9a
children ddbcbd000206
comparison
equal deleted inserted replaced
51:cbb301016a4e 52:15a18fbe6f21
20 * with this program; if not, write to the Free Software Foundation, Inc., 20 * with this program; if not, write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 * 22 *
23 */ 23 */
24 24
25 #include<string> 25 #include <string>
26 26
27 /* CD Track 名 <-> Track 番号の変換を行う */ 27 /* CD Track 名 <-> Track 番号の変換を行う */
28 class TrackName { 28 class TrackName {
29 char** track; 29 private:
30 int* track_num; 30 char** track;
31 char** track_wave; 31 int* track_num;
32 int* track_start; 32 char** track_wave;
33 int deal; 33 int* track_start;
34 void Expand(void); 34 int deal;
35 char** se_track; 35 void Expand(void);
36 int se_deal; 36 char** se_track;
37 void ExpandSE(int num); 37 int se_deal;
38 public: 38 void ExpandSE(int num);
39 TrackName(void); 39
40 ~TrackName(void); 40 public:
41 void AddCDROM(char* name, int track); 41 TrackName(void);
42 void AddWave(char* name, char* wave, int start_pt); 42 ~TrackName(void);
43 void AddSE(int num, char* se); 43 void AddCDROM(char* name, int track);
44 int CDTrack(char* name); 44 void AddWave(char* name, char* wave, int start_pt);
45 int TrackStart(char* name); 45 void AddSE(int num, char* se);
46 const char* WaveTrack(char* name); 46 int CDTrack(char* name);
47 const char* SETrack(int num); 47 int TrackStart(char* name);
48 const char* WaveTrack(char* name);
49 const char* SETrack(int num);
48 }; 50 };
49 /* gameexe.ini で設定されるパラメータ */ 51 /* gameexe.ini で設定されるパラメータ */
50 /* まず初めに、設定項目を SetOrigPara* でセットする 52 /* まず初めに、設定項目を SetOrigPara* でセットする
51 ** ただし、設定名は255文字以下である必要がある。 53 ** ただし、設定名は255文字以下である必要がある。
52 ** 54 **
53 ** SetPara* で設定項目は変更できる 55 ** SetPara* で設定項目は変更できる
54 ** また、GetPara* で設定項目を得られる。 56 ** また、GetPara* で設定項目を得られる。
55 */ 57 */
56 58
57 class AyuSysConfig { 59 class AyuSysConfig {
58 friend class Conf2; /* テスト用のクラス */ 60 private:
59 int change_flag; 61 int change_flag;
60 int dirty_flag; 62 int dirty_flag;
61 class AyuSysConfigString* str_config; 63 class AyuSysConfigString* str_config;
62 class AyuSysConfigIntlist* int_config; 64 class AyuSysConfigIntlist* int_config;
63 65
64 public: 66 public:
65 TrackName track_name; 67 TrackName track_name;
66 68
67 public: 69 public:
68 AyuSysConfig(void); 70 AyuSysConfig(void);
69 ~AyuSysConfig(); 71 ~AyuSysConfig();
70 bool LoadInitFile(void); 72 bool LoadInitFile(void);
71 /* パラメータを検索する */ 73 /* パラメータを検索する */
72 /* str なら 1, int なら 2, 見つからないなら 0 */ 74 /* str なら 1, int なら 2, 見つからないなら 0 */
73 int SearchParam(const char* name) const; 75 int SearchParam(const char* name) const;
74 /* パラメータを得る */ 76 /* パラメータを得る */
75 const char* GetParaStr(const char* name) const; /* str */ 77 const char* GetParaStr(const char* name) const; /* str */
76 int GetParam(const char* name, int deal, ...) const; /* int, error -> return -1, no error -> return 0 */ 78 int GetParam(const char* name, int deal, ...) const; /* int, error -> return -1, no error -> return 0 */
77 int GetOriginalParam(const char* name, int deal, ...) const; /* int, error -> return -1, no error -> return 0 */ 79 int GetOriginalParam(const char* name, int deal, ...) const; /* int, error -> return -1, no error -> return 0 */
78 int GetParaInt(const char* name) const { 80 int GetParaInt(const char* name) const {
79 int n; 81 int n;
80 if (GetParam(name,1,&n)) return 0; 82 if (GetParam(name,1,&n)) return 0;
81 return n; 83 return n;
82 } 84 }
83 const int* GetParamArray(const char* name, int& deal) const; 85 const int* GetParamArray(const char* name, int& deal) const;
84 /* パラメータを変更する */ 86 /* パラメータを変更する */
85 void SetParaStr(const char* name, const char* var); /* str */ 87 void SetParaStr(const char* name, const char* var); /* str */
86 void SetParam(const char* name, int deal, ...); /* int */ 88 void SetParam(const char* name, int deal, ...); /* int */
87 private:
88 friend class AyuSys;
89 /* 元設定を行う */
90 /* AyuSys からのみ可能 */
91 void SetOrigParaStr(const char* name, const char* var); /* str */
92 void SetOrigParam(const char* name, int para_deal, ...); /* int */
93 void SetOrigParamArray(const char* name, int deal, int* array); /* 上とおなじ */
94 public:
95 89
96 /* オリジナルの設定関係 90 private:
97 ** SetOriginal : 全ての設定を初めの状態に戻す 91 /* 元設定を行う */
98 ** DiffOriginal : 初めの状態と現在の状態の変更分を得る 92 /* AyuSys からのみ可能 */
99 ** PatchOriginal: DiffOriginal で得た文字列を引数に 93 void SetOrigParaStr(const char* name, const char* var); /* str */
100 ** 渡す。DiffOriginal 呼び出し時の状態に戻す 94 void SetOrigParam(const char* name, int para_deal, ...); /* int */
101 */ 95 void SetOrigParamArray(const char* name, int deal, int* array); /* 上とおなじ */
102 void SetOriginal(void); 96
103 void DiffOriginal(std::string&); 97 public:
104 const char* PatchOriginal(const char*); 98 /* オリジナルの設定関係
105 /* config の内容を表示する */ 99 ** SetOriginal : 全ての設定を初めの状態に戻す
106 void Dump(FILE* f) const; 100 ** DiffOriginal : 初めの状態と現在の状態の変更分を得る
101 ** PatchOriginal: DiffOriginal で得た文字列を引数に
102 ** 渡す。DiffOriginal 呼び出し時の状態に戻す
103 */
104 void SetOriginal(void);
105 void DiffOriginal(std::string&);
106 const char* PatchOriginal(const char*);
107 /* config の内容を表示する */
108 void Dump(FILE* f) const;
107 }; 109 };
108 110