nacapet/src/menu/sleeping_screen.cpp
Nacho e138334e06 Na, poca cosa
- Soporte para varios bichos  a la vez
- Algunos bugs menos
2025-06-01 01:54:36 +02:00

57 lines
1.6 KiB
C++

#include "menu.h"
#include "defs/defs.h"
#include "draw/draw.h"
#include "display/display.h"
#include "buttons/buttons.h"
#include "animations/animations.h"
#include "defs/chara_data.h"
void menu_sleepingScreen(
TFT_eSprite &bg, TFT_eSprite &sprite,
struct SpriteData* mainCharaData, struct SpriteData* bigUiElements, struct SpriteData* smallUIElements
) {
if (charaData[currentCharacter].sleepy && !charaData[currentCharacter].asleep) {
screenKey = SLEEPY_SCREEN;
return;
} else if (!charaData[currentCharacter].sleepy && !charaData[currentCharacter].asleep) {
screenKey = MAIN_SCREEN;
return;
}
uint64_t currentTime = esp_timer_get_time();
static uint8_t frameCounter = 0;
uint8_t buttonsPressed = buttons_getPressedButtons();
switch (buttonsPressed) {
case 8:
screenKey = MENU_SCREEN;
break;
case 4:
screenKey = CLOCK_SCREEN;
break;
default:
break;
}
if (currentTime - lastUpdateTime > ANIMATION_SLEEPY_THRESHOLD_TIME_US) {
draw_drawBackground(bg, 90, 90, 3);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
animate_performSleepyAnimation(sprite, mainCharaData);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
draw_drawSprite(sprite, 72, 72, bigUiElements, BED_SPRITE, 6);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
draw_drawSprite(sprite, 172, 72, smallUIElements, ZZZ_ICON, 6);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
menu_uiOverlay(sprite, bigUiElements);
lastUpdateTime = currentTime;
}
tft_drawBuffer();
}