mirror of
https://github.com/nacabaro/nacapet.git
synced 2026-01-28 00:15:32 +00:00
57 lines
1.6 KiB
C++
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();
|
|
} |