summaryrefslogtreecommitdiff
path: root/src/uci/state.c
diff options
context:
space:
mode:
authorAargh Rai <aargh.rai+git@gmail.com>2026-07-04 22:34:17 +0530
committerAargh Rai <aargh.rai+git@gmail.com>2026-07-04 22:34:17 +0530
commitf17df9538b1c3f58f12b738083b747ac332b8d71 (patch)
tree4df4254a726cd009a26eb3d9cd7e6d28b1a9c9a5 /src/uci/state.c
parent8535106616ccdc9f52c29ce7f46555e613c38b6e (diff)
the setoption now changes state
i can now finally start working on how the non existant engine will interact with uci
Diffstat (limited to 'src/uci/state.c')
-rw-r--r--src/uci/state.c34
1 files changed, 27 insertions, 7 deletions
diff --git a/src/uci/state.c b/src/uci/state.c
index 848c6a9..f64b5cf 100644
--- a/src/uci/state.c
+++ b/src/uci/state.c
@@ -1,10 +1,12 @@
+#include <string.h>
#include "state.h"
option_setting_t option_setting_combo(
char* option_name,
char** combinations,
int combinations_count,
- int default_value
+ int default_index,
+ combo_t *combo
) {
option_setting_t output = {0};
memcpy(output.option_name, option_name, 32);
@@ -12,8 +14,10 @@ option_setting_t option_setting_combo(
output.data.combo = (option_combo_setting_t) {
combinations,
combinations_count,
- default_value
+ default_index
};
+ output.value.combo = combo;
+ *combo = default_index;
return output;
}
@@ -21,40 +25,56 @@ option_setting_t option_setting_spin(
const char* option_name,
int min,
int max,
- int default_value
+ int default_value,
+ spin_t *spin
) {
option_setting_t output = {0};
memcpy(output.option_name, option_name, 32);
output.type = OPTION_SPIN;
output.data.spin = (option_spin_setting_t) { min, max, default_value };
+ output.value.spin = spin;
+ *spin = default_value;
return output;
}
option_setting_t option_setting_check(
const char* option_name,
- bool default_value
+ bool default_value,
+ check_t *check
) {
option_setting_t output = {0};
memcpy(output.option_name, option_name, 32);
output.type = OPTION_CHECK;
output.data.check_default = default_value;
+ output.value.check = check;
+ *check = default_value;
return output;
}
option_setting_t option_setting_string(
const char* option_name,
- const char* default_value
+ const char* default_value,
+ str_t *string
) {
option_setting_t output = {0};
- memcpy(output.option_name, option_name, 32);
+ strncpy(output.option_name, option_name, 32);
output.type = OPTION_STRING;
output.data.string_default = default_value;
+ output.value.string = string;
+ string->length = strlen(default_value);
+ string->data = malloc(string->length);
+ memcpy(string->data, default_value, string->length);
return output;
}
-option_setting_t option_setting_button(const char* option_name) {
+option_setting_t option_setting_button(
+ const char* option_name,
+ button_t *button
+) {
option_setting_t output = {0};
memcpy(output.option_name, option_name, 32);
output.type = OPTION_BUTTON;
+ output.value.button = button;
+ *button = false;
return output;
}