root/system/system_config.h

Revision 65:4416cfac86ae, 3.7 KB (checked in by Thibaut Girka <thib@…>, 18 months ago)
Convert EUC-JP files to UTF8
Line 
1/*  system_config.h
2 *      gameexe.ini ファむルの読み蟌み
3 */
4
5/*
6 *
7 *  Copyright (C) 2000-   Kazunori Ueno(JAGARL) <jagarl@creator.club.ne.jp>
8 *
9 *  This program is free software; you can redistribute it and/or modify
10 *  it under the terms of the GNU General Public License as published by
11 *  the Free Software Foundation; either version 2 of the License, or
12 *  (at your option) any later version.
13 *
14 *  This program is distributed in the hope that it will be useful,
15 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 *  GNU General Public License for more details.
18 *
19 *  You should have received a copy of the GNU General Public License along
20 *  with this program; if not, write to the Free Software Foundation, Inc.,
21 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 *
23*/
24
25#ifndef __SYSTEM_CONFIG_H__
26#define __SYSTEM_CONFIG_H__
27
28#include <string>
29
30/* CD Track 名 <-> Track 番号の倉換を行う */
31class TrackName {
32        private:
33                char** track;
34                int* track_num;
35                char** track_wave;
36                int* track_start;
37                int deal;
38                void Expand(void);
39                char** se_track;
40                int se_deal;
41                void ExpandSE(int num);
42
43        public:
44                TrackName(void);
45                ~TrackName(void);
46                void AddCDROM(char* name, int track);
47                void AddWave(char* name, char* wave, int start_pt);
48                void AddSE(int num, char* se);
49                int CDTrack(char* name);
50                int TrackStart(char* name);
51                const char* WaveTrack(char* name);
52                const char* SETrack(int num);
53};
54/* gameexe.ini で蚭定されるパラメヌタ */
55/* たず初めに、蚭定項目を SetOrigPara* でセットする
56** ただし、蚭定名は255文字以䞋である必芁がある。
57**
58** SetPara* で蚭定項目は倉曎できる
59** たた、GetPara* で蚭定項目を埗られる。
60*/
61
62class AyuSysConfig {
63        public:
64                static AyuSysConfig* GetInstance(void);
65                static void Quit(void);
66
67                bool LoadInitFile(void);
68                /* パラメヌタを怜玢する */
69                /* str なら 1, int なら 2, 芋぀からないなら 0 */
70                int SearchParam(const char* name) const;
71                /* パラメヌタを埗る */
72                const char* GetParaStr(const char* name) const; /* str */
73                int GetParam(const char* name, int deal, ...) const; /* int, error -> return -1, no error -> return 0 */
74                int GetOriginalParam(const char* name, int deal, ...) const; /* int, error -> return -1, no error -> return 0 */
75                int GetParaInt(const char* name) const {
76                        int n;
77                        if (GetParam(name,1,&n)) return 0;
78                        return n;
79                }
80                const int* GetParamArray(const char* name, int& deal) const;
81                /* パラメヌタを倉曎する */
82                void SetParaStr(const char* name, const char* var); /* str */
83                void SetParam(const char* name, int deal, ...); /* int */
84
85                /* オリゞナルの蚭定関係
86                ** SetOriginal : 党おの蚭定を初めの状態に戻す
87                ** DiffOriginal : 初めの状態ず珟圚の状態の倉曎分を埗る
88                ** PatchOriginal: DiffOriginal で埗た文字列を匕数に
89                **   æž¡ã™ã€‚DiffOriginal 呌び出し時の状態に戻す
90                */
91                void SetOriginal(void);
92                void DiffOriginal(std::string&);
93                const char* PatchOriginal(const char*);
94                /* config の内容を衚瀺する */
95                void Dump(FILE* f) const;
96
97        private:
98                /* 元蚭定を行う */
99                /* AyuSys からのみ可胜 */
100                void SetOrigParaStr(const char* name, const char* var); /* str */
101                void SetOrigParam(const char* name, int para_deal, ...); /* int */
102                void SetOrigParamArray(const char* name, int deal, int* array); /* 䞊ずおなじ */
103                AyuSysConfig(void);
104                ~AyuSysConfig();
105
106        public:
107                TrackName track_name;
108
109        private:
110                int change_flag;
111                int dirty_flag;
112                class AyuSysConfigString* str_config;
113                class AyuSysConfigIntlist* int_config;
114                static AyuSysConfig* _singleton;
115};
116
117#endif
118
Note: See TracBrowser for help on using the browser.