14 static const bool UseDebug = false;
\r
25 static option_t Option[] = {
\r
27 { "OptionFile", NULL, }, // string
\r
31 { "EngineName", NULL, }, // string
\r
32 { "EngineDir", NULL, }, // string
\r
33 { "EngineCommand", NULL, }, // string
\r
35 { "Log", NULL, }, // true/false
\r
36 { "LogFile", NULL, }, // string
\r
38 { "UCI", NULL, }, // true/false
\r
40 { "UseNice", NULL, }, // true/false
\r
42 { "NiceValue", NULL, }, // true/false
\r
44 { "Chess960", NULL, }, // true/false
\r
46 { "Resign", NULL, }, // true/false
\r
47 { "ResignMoves", NULL, }, // move number
\r
48 { "ResignScore", NULL, }, // centipawns
\r
50 { "MateScore", NULL, }, // centipawns
\r
52 { "Book", NULL, }, // true/false
\r
53 { "BookFile", NULL, }, // string
\r
55 { "BookRandom", NULL, }, // true/false
\r
56 { "BookLearn", NULL, }, // true/false
\r
58 { "KibitzMove", NULL, }, // true/false
\r
59 { "KibitzPV", NULL, }, // true/false
\r
61 { "KibitzCommand", NULL, }, // string
\r
62 { "KibitzDelay", NULL, }, // seconds
\r
64 { "ShowPonder", NULL, }, // true/false
\r
68 { "UCIVersion", NULL, }, // 1-
\r
69 { "CanPonder", NULL, }, // true/false
\r
70 { "SyncStop", NULL, }, // true/false
\r
71 { "Affinity", NULL, }, // -1 else 0-32 //won't do much on *nix systems
\r
72 { "RepeatPV", NULL, },
\r
73 { "PromoteWorkAround", NULL, }, // true/false
\r
82 static option_t * option_find (const char var[]);
\r
88 void option_init() {
\r
90 option_set("OptionFile","polyglot.ini");
\r
94 option_set("EngineName","<empty>");
\r
95 option_set("EngineDir",".");
\r
96 option_set("EngineCommand","<empty>");
\r
98 option_set("Log","false");
\r
99 option_set("LogFile","polyglot.log");
\r
101 option_set("UCI","false");
\r
103 option_set("UseNice","false");
\r
104 option_set("NiceValue","5");
\r
106 option_set("Chess960","false");
\r
108 option_set("Resign","false");
\r
109 option_set("ResignMoves","3");
\r
110 option_set("ResignScore","600");
\r
112 option_set("MateScore","10000");
\r
114 option_set("Book","false");
\r
115 option_set("BookFile","book.bin");
\r
117 option_set("BookRandom","true");
\r
118 option_set("BookLearn","false");
\r
120 option_set("KibitzMove","false");
\r
121 option_set("KibitzPV","false");
\r
123 option_set("KibitzCommand","tellall");
\r
124 option_set("KibitzDelay","5");
\r
126 option_set("ShowPonder","true");
\r
130 option_set("UCIVersion","2");
\r
131 option_set("CanPonder","false");
\r
132 option_set("SyncStop","false");
\r
133 option_set("Affinity","-1");
\r
134 option_set("PromoteWorkAround","false");
\r
135 option_set("RepeatPV","true");
\r
136 // option_set("","");
\r
141 bool option_set(const char var[], const char val[]) {
\r
148 opt = option_find(var);
\r
149 if (opt == NULL) return false;
\r
151 my_string_set(&opt->val,val);
\r
153 if (UseDebug) my_log("POLYGLOT OPTION SET \"%s\" -> \"%s\"\n",opt->var,opt->val);
\r
160 const char * option_get(const char var[]) {
\r
166 opt = option_find(var);
\r
167 if (opt == NULL) my_fatal("option_get(): unknown option \"%s\"\n",var);
\r
169 if (UseDebug) my_log("POLYGLOT OPTION GET \"%s\" -> \"%s\"\n",opt->var,opt->val);
\r
174 // option_get_bool()
\r
176 bool option_get_bool(const char var[]) {
\r
180 val = option_get(var);
\r
183 } else if (my_string_case_equal(val,"true") || my_string_case_equal(val,"yes") || my_string_equal(val,"1")) {
\r
185 } else if (my_string_case_equal(val,"false") || my_string_case_equal(val,"no") || my_string_equal(val,"0")) {
\r
194 // option_get_double()
\r
196 double option_get_double(const char var[]) {
\r
200 val = option_get(var);
\r
205 // option_get_int()
\r
207 int option_get_int(const char var[]) {
\r
211 val = option_get(var);
\r
216 // option_get_string()
\r
218 const char * option_get_string(const char var[]) {
\r
222 val = option_get(var);
\r
229 static option_t * option_find(const char var[]) {
\r
235 for (opt = &Option[0]; opt->var != NULL; opt++) {
\r
236 if (my_string_case_equal(opt->var,var)) return opt;
\r
242 // end of option.cpp
\r