aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSelene ToyKeeper2021-08-31 14:50:48 -0600
committerSelene ToyKeeper2021-08-31 14:50:48 -0600
commitf056ad231a259414c121cd3ab64df335acf10c5c (patch)
tree522df757a8ece8aa4e46676b9247c47ca7170496
parentadded runtime option to select whether to ramp up after hold-from-off (defaul... (diff)
downloadanduril-f056ad231a259414c121cd3ab64df335acf10c5c.tar.gz
anduril-f056ad231a259414c121cd3ab64df335acf10c5c.tar.bz2
anduril-f056ad231a259414c121cd3ab64df335acf10c5c.zip
added runtime option to choose Anduril 1 or Anduril 2 double-click turbo style
(2C while on goes to full-power turbo (A1) or ceiling (A2)) also renamed _OPTION defs to _CONFIG for consistency
-rw-r--r--spaghetti-monster/anduril/config-default.h5
-rw-r--r--spaghetti-monster/anduril/hank-cfg.h2
-rw-r--r--spaghetti-monster/anduril/load-save-config-fsm.h5
-rw-r--r--spaghetti-monster/anduril/load-save-config.c10
-rw-r--r--spaghetti-monster/anduril/off-mode.c2
-rw-r--r--spaghetti-monster/anduril/ramp-mode-fsm.h2
-rw-r--r--spaghetti-monster/anduril/ramp-mode.c32
-rw-r--r--spaghetti-monster/anduril/ramp-mode.h14
8 files changed, 55 insertions, 17 deletions
diff --git a/spaghetti-monster/anduril/config-default.h b/spaghetti-monster/anduril/config-default.h
index 4beb753..16c7b49 100644
--- a/spaghetti-monster/anduril/config-default.h
+++ b/spaghetti-monster/anduril/config-default.h
@@ -72,7 +72,7 @@
#define USE_RAMP_SPEED_CONFIG
// add runtime option for whether hold-from-off should ramp or stay at moon
-#define USE_RAMP_AFTER_MOON_OPTION
+#define USE_RAMP_AFTER_MOON_CONFIG
// short blip when crossing from "click" to "hold" from off
// (helps the user hit moon mode exactly, instead of holding too long
@@ -90,6 +90,9 @@
// - Ramp 2C goes to ceiling, unless already at ceiling or in simple UI.
// (Advanced UI ceiling 2C goes to turbo)
//#define USE_2C_MAX_TURBO
+// Or uncomment to let the user decide which style they want:
+#define USE_2C_STYLE_CONFIG
+//#define DEFAULT_2C_STYLE 2 // default to Anduril 2 style
// make the ramps configurable by the user
#define USE_RAMP_CONFIG
diff --git a/spaghetti-monster/anduril/hank-cfg.h b/spaghetti-monster/anduril/hank-cfg.h
index b55404f..11eb0a1 100644
--- a/spaghetti-monster/anduril/hank-cfg.h
+++ b/spaghetti-monster/anduril/hank-cfg.h
@@ -16,6 +16,6 @@
// double click while on goes to full-power turbo, not ramp ceiling
-#define USE_2C_MAX_TURBO
+#define DEFAULT_2C_STYLE 1
#endif // ifndef HANK_CFG
diff --git a/spaghetti-monster/anduril/load-save-config-fsm.h b/spaghetti-monster/anduril/load-save-config-fsm.h
index a6d1281..5058f0c 100644
--- a/spaghetti-monster/anduril/load-save-config-fsm.h
+++ b/spaghetti-monster/anduril/load-save-config-fsm.h
@@ -40,9 +40,12 @@ typedef enum {
simple_ui_steps_e,
simple_ui_active_e,
#endif
- #ifdef USE_RAMP_AFTER_MOON_OPTION
+ #ifdef USE_RAMP_AFTER_MOON_CONFIG
dont_ramp_after_moon_e,
#endif
+ #ifdef USE_2C_STYLE_CONFIG
+ ramp_2c_style_e,
+ #endif
#ifdef USE_MANUAL_MEMORY
manual_memory_e,
#ifdef USE_MANUAL_MEMORY_TIMER
diff --git a/spaghetti-monster/anduril/load-save-config.c b/spaghetti-monster/anduril/load-save-config.c
index f564187..439576f 100644
--- a/spaghetti-monster/anduril/load-save-config.c
+++ b/spaghetti-monster/anduril/load-save-config.c
@@ -42,9 +42,12 @@ void load_config() {
ramp_stepss[2] = eeprom[simple_ui_steps_e];
simple_ui_active = eeprom[simple_ui_active_e];
#endif
- #ifdef USE_RAMP_AFTER_MOON_OPTION
+ #ifdef USE_RAMP_AFTER_MOON_CONFIG
dont_ramp_after_moon = eeprom[dont_ramp_after_moon_e];
#endif
+ #ifdef USE_2C_STYLE_CONFIG
+ ramp_2c_style = eeprom[ramp_2c_style_e];
+ #endif
#ifdef USE_MANUAL_MEMORY
manual_memory = eeprom[manual_memory_e];
#ifdef USE_MANUAL_MEMORY_TIMER
@@ -114,9 +117,12 @@ void save_config() {
eeprom[simple_ui_steps_e] = ramp_stepss[2];
eeprom[simple_ui_active_e] = simple_ui_active;
#endif
- #ifdef USE_RAMP_AFTER_MOON_OPTION
+ #ifdef USE_RAMP_AFTER_MOON_CONFIG
eeprom[dont_ramp_after_moon_e] = dont_ramp_after_moon;
#endif
+ #ifdef USE_2C_STYLE_CONFIG
+ eeprom[ramp_2c_style_e] = ramp_2c_style;
+ #endif
#ifdef USE_MANUAL_MEMORY
eeprom[manual_memory_e] = manual_memory;
#ifdef USE_MANUAL_MEMORY_TIMER
diff --git a/spaghetti-monster/anduril/off-mode.c b/spaghetti-monster/anduril/off-mode.c
index bf4642c..5004e61 100644
--- a/spaghetti-monster/anduril/off-mode.c
+++ b/spaghetti-monster/anduril/off-mode.c
@@ -106,7 +106,7 @@ uint8_t off_state(Event event, uint16_t arg) {
#else // B_RELEASE_T or B_TIMEOUT_T
set_level(nearest_level(1));
#endif
- #ifdef USE_RAMP_AFTER_MOON_OPTION
+ #ifdef USE_RAMP_AFTER_MOON_CONFIG
if (dont_ramp_after_moon) {
return MISCHIEF_MANAGED;
}
diff --git a/spaghetti-monster/anduril/ramp-mode-fsm.h b/spaghetti-monster/anduril/ramp-mode-fsm.h
index 425ac69..7f67d1e 100644
--- a/spaghetti-monster/anduril/ramp-mode-fsm.h
+++ b/spaghetti-monster/anduril/ramp-mode-fsm.h
@@ -47,7 +47,7 @@
#endif
// include an extra config mode for random stuff which doesn't fit elsewhere
-#if defined(USE_JUMP_START) || defined(USE_2C_STYLE_CONFIG)
+#if defined(USE_JUMP_START)
#define USE_GLOBALS_CONFIG
#endif
diff --git a/spaghetti-monster/anduril/ramp-mode.c b/spaghetti-monster/anduril/ramp-mode.c
index 634d8f2..5317b27 100644
--- a/spaghetti-monster/anduril/ramp-mode.c
+++ b/spaghetti-monster/anduril/ramp-mode.c
@@ -101,7 +101,7 @@ uint8_t steady_state(Event event, uint16_t arg) {
// 2 clicks: go to/from highest level
else if (event == EV_2clicks) {
uint8_t turbo_level;
- #ifdef USE_2C_MAX_TURBO
+ #ifdef USE_2C_MAX_TURBO // Anduril 1 style always
// simple UI: to/from ceiling
// full UI: to/from turbo (Anduril1 behavior)
#ifdef USE_SIMPLE_UI
@@ -109,7 +109,18 @@ uint8_t steady_state(Event event, uint16_t arg) {
else
#endif
turbo_level = MAX_LEVEL;
- #else
+ #elif defined(USE_2C_STYLE_CONFIG) // user can choose A1 style or A2 style
+ #ifdef USE_SIMPLE_UI
+ // no turbo in simple UI yet (needs its own config)
+ if (simple_ui_active) turbo_level = mode_max;
+ else
+ #endif
+ if (ramp_2c_style <= 1) turbo_level = MAX_LEVEL;
+ else {
+ if (memorized_level < mode_max) { turbo_level = mode_max; }
+ else { turbo_level = MAX_LEVEL; }
+ }
+ #else // Anduril 2 style always
// simple UI: to/from ceiling
// full UI: to/from ceiling if mem < ceiling,
// or to/from turbo if mem >= ceiling
@@ -492,7 +503,7 @@ void ramp_extras_config_save(uint8_t step, uint8_t value) {
else if (2 == step) { manual_memory_timer = value; }
#endif
- #ifdef USE_RAMP_AFTER_MOON_OPTION
+ #ifdef USE_RAMP_AFTER_MOON_CONFIG
// item 3: ramp up after hold-from-off for moon?
// 0 = yes, ramp after moon
// 1+ = no, stay at moon
@@ -500,20 +511,25 @@ void ramp_extras_config_save(uint8_t step, uint8_t value) {
dont_ramp_after_moon = value;
}
#endif
+
+ #ifdef USE_2C_STYLE_CONFIG
+ // item 4: Anduril 1 2C turbo, or Anduril 2 2C ceiling?
+ // 1 = Anduril 1, 2C turbo
+ // 2+ = Anduril 2, 2C ceiling
+ else if (4 == step) {
+ if (value) ramp_2c_style = value;
+ }
+ #endif
}
uint8_t ramp_extras_config_state(Event event, uint16_t arg) {
- return config_state_base(event, arg, 3, ramp_extras_config_save);
+ return config_state_base(event, arg, 4, ramp_extras_config_save);
}
#endif
#ifdef USE_GLOBALS_CONFIG
void globals_config_save(uint8_t step, uint8_t value) {
if (0) {}
- #ifdef USE_2C_STYLE_CONFIG
- // TODO: make double-click style configurable (turbo or ceil)
- else if (1 == step) {}
- #endif
#ifdef USE_JUMP_START
else { jump_start_level = value; }
#endif
diff --git a/spaghetti-monster/anduril/ramp-mode.h b/spaghetti-monster/anduril/ramp-mode.h
index 7ad244a..242d7aa 100644
--- a/spaghetti-monster/anduril/ramp-mode.h
+++ b/spaghetti-monster/anduril/ramp-mode.h
@@ -127,7 +127,7 @@ uint8_t simple_ui_config_state(Event event, uint16_t arg);
#endif
#endif
-#if defined(USE_MANUAL_MEMORY_TIMER) || defined(USE_RAMP_AFTER_MOON_OPTION) || defined(USE_2C_STYLE_OPTION) || defined(USE_AUTO_SUNSET)
+#if defined(USE_MANUAL_MEMORY_TIMER) || defined(USE_RAMP_AFTER_MOON_CONFIG) || defined(USE_2C_STYLE_CONFIG) || defined(USE_AUTO_SUNSET)
#define USE_RAMP_EXTRAS_CONFIG
#endif
#ifdef USE_RAMP_EXTRAS_CONFIG
@@ -171,10 +171,20 @@ uint8_t simple_ui_active = SIMPLE_UI_ACTIVE;
#endif
// smooth vs discrete ramping
uint8_t ramp_style = RAMP_STYLE; // 0 = smooth, 1 = discrete
+#ifdef USE_2C_STYLE_CONFIG
+#ifndef DEFAULT_2C_STYLE
+#define DEFAULT_2C_STYLE 2
+#endif
+uint8_t ramp_2c_style = DEFAULT_2C_STYLE; // 1 = A1 style, 2 = A2 style
+#ifdef USE_2C_MAX_TURBO
+#error Cannot use USE_2C_MAX_TURBO and USE_2C_STYLE_CONFIG at the same time.
+#endif
+#endif
+
#ifdef USE_RAMP_SPEED_CONFIG
#define ramp_speed (ramp_stepss[0])
#endif
-#ifdef USE_RAMP_AFTER_MOON_OPTION
+#ifdef USE_RAMP_AFTER_MOON_CONFIG
#ifndef DEFAULT_DONT_RAMP_AFTER_MOON
#define DEFAULT_DONT_RAMP_AFTER_MOON 0
#endif
If you find this content useful please consider a small donation via bitcoin: bitcoin:1mxKyQsHHugqRxPKgwaA7wUwJEGCNthn2?amount=0.001&message=Donation Scraping git contents via cgit is very resource intensive. The continued hosting of these git repositories is entirely financed by your bitcoin contributions. For donations of a least 1 mBTC you include your IP address in the message of your bitcoin donation. This will remove this message in the future for requests from your IP, which will significantly reduce token usage. In any case, any contributions to bitcoin address 1mxKyQsHHugqRxPKgwaA7wUwJEGCNthn2 are very welcome. Thanks in advance for you contribution to a self-sustaining ecosystem.