commeownder/main/menu_counters.c

40 lines
1.0 KiB
C

#include "menu_counters.h"
#include "menus.h"
#include "config.h"
#include "state.h"
#include "draw.h"
#include "game.h"
#include "events.h"
static const uint8_t s_icon_plus[2][ICON_W] = {
// Plus (counters)
{0x00,0x00,0x00,0xC0,0xC0,0xC0,0xF8,0xF8,0xF8,0xF8,0xC0,0xC0,0xC0,0x00,0x00,0x00},
{0x00,0x00,0x00,0x03,0x03,0x03,0x1F,0x1F,0x1F,0x1F,0x03,0x03,0x03,0x00,0x00,0x00},
};
static void counters_nav_short(int d)
{
g_active_counter = (g_active_counter + d + NUM_COUNTERS) % NUM_COUNTERS;
}
static void counters_lr_delta(int d)
{
g_counters[g_active_counter] += d;
if (g_counters[g_active_counter] < 0) g_counters[g_active_counter] = 0;
check_elimination();
mark_dirty();
}
static void counters_draw(void)
{
oled_draw_list(counter_names, g_counters, NUM_COUNTERS, g_active_counter);
}
const menu_vtable_t menu_counters_vtable = {
.nav_short = counters_nav_short,
.lr_delta = counters_lr_delta,
.draw = counters_draw,
.on_tick = NULL,
.icon = s_icon_plus,
};