mirror of
https://github.com/nacabaro/nacapet.git
synced 2026-06-05 14:02:53 +00:00
61 lines
1.9 KiB
C++
61 lines
1.9 KiB
C++
#include "menu.h"
|
|
#include "draw/draw.h"
|
|
#include "display/display.h"
|
|
#include "buttons/buttons.h"
|
|
#include "defs/defs.h"
|
|
#include "defs/sprite_data.h"
|
|
#include "defs/chara_data.h"
|
|
#include "animations/animations.h"
|
|
#include "vpet/vpet/vpet.h"
|
|
#include "vpet/lines/lines.h"
|
|
|
|
void menu_eggHatchScreen(TFT_eSprite& bg, TFT_eSprite &sprite, struct SpriteData* uiBigSprite, struct SpriteData* uiSmallSprite) {
|
|
static bool eggSpriteFrame = false;
|
|
|
|
uint8_t pressedButtons = buttons_getPressedButtons();
|
|
switch (pressedButtons) {
|
|
case K2_PRESSED:
|
|
screenKey = CLOCK_SCREEN;
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
uint64_t currentTime = esp_timer_get_time();
|
|
if (currentTime - lastUpdateTime > ANIMATION_THRESHOLD_TIME_US) {
|
|
if (charaData[currentCharacter].hatchTimer <= currentLine[currentCharacter]->hatchTime) {
|
|
draw_drawBackground(bg, 90, 90, 3);
|
|
draw_drawSpriteCentered(sprite, ¤tEgg->eggSprite, eggSpriteFrame);
|
|
|
|
eggSpriteFrame = !eggSpriteFrame;
|
|
lastUpdateTime = currentTime;
|
|
|
|
tft_drawBuffer();
|
|
|
|
|
|
} else if (charaData[currentCharacter].hatchTimer > currentLine[currentCharacter]->hatchTime && !charaData[currentCharacter].hatched) {
|
|
for (int i = 0; i < 30; i++) {
|
|
tone(SPK_PIN, 4100, 35);
|
|
tone(SPK_PIN, 3500, 35);
|
|
|
|
draw_drawBackground(bg, 90, 90, 3);
|
|
animate_performHatchingAnimation(sprite, ¤tEgg->eggSprite);
|
|
|
|
tft_drawBuffer();
|
|
}
|
|
|
|
draw_drawBackground(bg, 90, 90, 3);
|
|
|
|
draw_drawSpriteCentered(sprite, ¤tEgg->eggSprite, 2);
|
|
|
|
tft_drawBuffer();
|
|
|
|
delay(2000);
|
|
|
|
lines_onHatchComplete();
|
|
|
|
return;
|
|
}
|
|
}
|
|
} |