feat(ui): add weather and lucky color commands
This commit is contained in:
@@ -96,6 +96,7 @@ typedef struct {
|
||||
uint16_t icon_y;
|
||||
} domain_wuxing_result_t;
|
||||
|
||||
/* Keep this table ordered by domain_wuxing_element_t. */
|
||||
static const domain_wuxing_result_t s_wuxing_results[] = {
|
||||
{.asset_dir = "shui", .icon_id = 0, .icon_x = 124, .icon_y = 8},
|
||||
{.asset_dir = "mu", .icon_id = 1, .icon_x = 217, .icon_y = 92},
|
||||
@@ -104,6 +105,10 @@ static const domain_wuxing_result_t s_wuxing_results[] = {
|
||||
{.asset_dir = "jin", .icon_id = 4, .icon_x = 18, .icon_y = 102},
|
||||
};
|
||||
|
||||
_Static_assert(sizeof(s_wuxing_results) / sizeof(s_wuxing_results[0]) ==
|
||||
DOMAIN_WUXING_ELEMENT_COUNT,
|
||||
"Wuxing result assets must match domain_wuxing_element_t");
|
||||
|
||||
/*
|
||||
* Wealth-direction reveal asset directories, indexed parallel to the direction
|
||||
* catalog order in components/domain/src/direction/domain_direction_catalog.c
|
||||
@@ -1461,7 +1466,18 @@ static esp_err_t domain_resolve_expression_platform_request(
|
||||
if (request->id == DOMAIN_EXPRESSION_WUXING) {
|
||||
static platform_lcd_presentation_step_t s_wuxing_steps[3];
|
||||
const size_t result_count = sizeof(s_wuxing_results) / sizeof(s_wuxing_results[0]);
|
||||
const domain_wuxing_result_t *result = &s_wuxing_results[esp_random() % result_count];
|
||||
size_t result_index = esp_random() % result_count;
|
||||
if (request->wuxing_element_valid) {
|
||||
if ((size_t)request->wuxing_element >= result_count) {
|
||||
ESP_LOGW(TAG,
|
||||
"Wuxing element out of range: %u (max %u)",
|
||||
(unsigned int)request->wuxing_element,
|
||||
(unsigned int)result_count);
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
result_index = (size_t)request->wuxing_element;
|
||||
}
|
||||
const domain_wuxing_result_t *result = &s_wuxing_results[result_index];
|
||||
|
||||
s_wuxing_steps[0] = (platform_lcd_presentation_step_t) {
|
||||
.asset_dir = "qianzhiwuxing",
|
||||
|
||||
Reference in New Issue
Block a user