mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 08:43:09 +00:00
UCI buttons don't need a value
Take advantage of this to further simplify the code. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
9b26356347
commit
55376219b7
3 changed files with 10 additions and 17 deletions
10
src/uci.cpp
10
src/uci.cpp
|
@ -175,14 +175,10 @@ namespace {
|
|||
while (is >> token)
|
||||
value += string(" ", !value.empty()) + token;
|
||||
|
||||
if (!Options.count(name))
|
||||
cout << "No such option: " << name << endl;
|
||||
|
||||
else if (value.empty()) // UCI buttons don't have a value
|
||||
Options[name] = true;
|
||||
|
||||
else
|
||||
if (Options.count(name))
|
||||
Options[name] = value;
|
||||
else
|
||||
cout << "No such option: " << name << endl;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ UCIOption::UCIOption(bool v, Fn* f) : type("check"), min(0), max(0), idx(Options
|
|||
{ defaultValue = currentValue = (v ? "true" : "false"); }
|
||||
|
||||
UCIOption::UCIOption(Fn* f) : type("button"), min(0), max(0), idx(Options.size()), on_change(f)
|
||||
{ defaultValue = currentValue = "false"; }
|
||||
{}
|
||||
|
||||
UCIOption::UCIOption(int v, int minv, int maxv, Fn* f) : type("spin"), min(minv), max(maxv), idx(Options.size()), on_change(f)
|
||||
{ std::ostringstream ss; ss << v; defaultValue = currentValue = ss.str(); }
|
||||
|
@ -136,16 +136,14 @@ void UCIOption::operator=(const string& v) {
|
|||
|
||||
assert(!type.empty());
|
||||
|
||||
if ( !v.empty()
|
||||
&& (type == "check" || type == "button") == (v == "true" || v == "false")
|
||||
&& (type != "spin" || (atoi(v.c_str()) >= min && atoi(v.c_str()) <= max)))
|
||||
if ( (type == "button" || !v.empty())
|
||||
&& (type != "check" || (v == "true" || v == "false"))
|
||||
&& (type != "spin" || (atoi(v.c_str()) >= min && atoi(v.c_str()) <= max)))
|
||||
{
|
||||
currentValue = v;
|
||||
if (type != "button")
|
||||
currentValue = v;
|
||||
|
||||
if (on_change)
|
||||
(*on_change)(*this);
|
||||
|
||||
if (type == "button")
|
||||
currentValue = "false";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,10 +39,9 @@ public:
|
|||
UCIOption(int v, int min, int max, Fn* = NULL);
|
||||
|
||||
void operator=(const std::string& v);
|
||||
void operator=(bool v) { *this = std::string(v ? "true" : "false"); }
|
||||
|
||||
operator int() const {
|
||||
assert(type == "check" || type == "button" || type == "spin");
|
||||
assert(type == "check" || type == "spin");
|
||||
return (type == "spin" ? atoi(currentValue.c_str()) : currentValue == "true");
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue