40 lines
1.0 KiB
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,
|
|
};
|