nacapet/src/menu/feeding_screen.cpp
2025-05-24 15:14:47 +02:00

49 lines
1.4 KiB
C++

#include "menu.h"
#include "animations/animations.h"
#include "buttons/buttons.h"
#include "draw/draw.h"
#include "display/display.h"
void menu_feedingScreen(
TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &charaSprite,
struct SpriteData* uiSpriteData, struct SpriteData* charaSpriteData, uint8_t item
) {
static int currentAnimationFrame = 0;
uint64_t currentTime = esp_timer_get_time();
uint8_t pressedButtons = buttons_getPressedButtons();
switch (pressedButtons) {
case 8:
case 4:
screenKey = FOOD_SCREEN;
currentAnimationFrame = 0;
lastPressedButtonTime = currentTime;
submenuKey = -1;
break;
default:
break;
}
if (currentTime - lastUpdateTime > ANIMATION_THRESHOLD_TIME_US) {
draw_drawBackground(composite, bg, 90, 90, 3);
tft_clearBuffer(charaSprite, TFT_TRANSPARENT);
animate_performEatingAnimation(composite, charaSprite, charaSpriteData);
tft_clearBuffer(charaSprite, TFT_TRANSPARENT);
draw_drawSprite(composite, charaSprite, 24, 120, uiSpriteData, item, 6);
lastUpdateTime = currentTime;
currentAnimationFrame++;
}
if (currentAnimationFrame > 6) {
screenKey = FOOD_SCREEN;
lastPressedButtonTime = currentTime;
currentAnimationFrame = 0;
submenuKey = -1;
}
tft_drawBuffer(composite);
}