mirror of
https://github.com/nacabaro/nacapet.git
synced 2026-09-30 23:21:37 +00:00
Few things (broke everything related to sleep)
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
#include "menu.h"
|
||||
#include "defs/defs.h"
|
||||
#include "defs/sprite_data.h"
|
||||
#include "display/display.h"
|
||||
#include "draw/draw.h"
|
||||
#include "animations/animations.h"
|
||||
|
||||
void menu_drawAngryScreen(
|
||||
TFT_eSprite &bg, TFT_eSprite &sprite,
|
||||
struct SpriteData* spriteData, struct SpriteData* smallUiElements
|
||||
) {
|
||||
uint8_t frameCounter = 0;
|
||||
|
||||
while (true) {
|
||||
uint64_t currentTime = esp_timer_get_time();
|
||||
if (currentTime - lastUpdateTime > ANIMATION_THRESHOLD_TIME_US) {
|
||||
if (frameCounter > 3) {
|
||||
screenKey = MAIN_SCREEN; // TODO: Change for while battling
|
||||
menuKey = STATUS_SCREEN;
|
||||
|
||||
vTaskResume(secondLoop);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
draw_drawBackground(bg, 90, 90, 3);
|
||||
|
||||
tft_clearBuffer(sprite, TFT_TRANSPARENT);
|
||||
animate_performAngryAnimation(sprite, spriteData);
|
||||
|
||||
if (frameCounter % 2 == 0) {
|
||||
tone(SPK_PIN, 1000, 100);
|
||||
tone(SPK_PIN, 1000, 200);
|
||||
|
||||
tft_clearBuffer(sprite, TFT_TRANSPARENT);
|
||||
draw_drawSprite(sprite, 18, 72, smallUiElements, FIREWORKS_ICON, 6);
|
||||
draw_drawSprite(sprite, 174, 72, smallUiElements, FIREWORKS_ICON, 6);
|
||||
}
|
||||
|
||||
frameCounter++;
|
||||
lastUpdateTime = currentTime;
|
||||
}
|
||||
|
||||
tft_drawBuffer();
|
||||
}
|
||||
}
|
||||
@@ -150,7 +150,7 @@ void menu_evolutionScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteDat
|
||||
|
||||
menu_freeCheckerboard();
|
||||
|
||||
loop_resumeLoop();
|
||||
vTaskResume(secondLoop);
|
||||
|
||||
screenKey = MAIN_SCREEN;
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
|
||||
void menu_changeCharaScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* mainSpriteData, struct SpriteData* uiSpriteData) {
|
||||
loop_pauseLoop();
|
||||
vTaskSuspend(secondLoop);
|
||||
|
||||
uint8_t selectedChara = currentCharacter;
|
||||
CharacterData* selectedCharaData = &charaData[selectedChara];
|
||||
@@ -30,7 +30,7 @@ void menu_changeCharaScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteD
|
||||
|
||||
case K2_PRESSED:
|
||||
currentCharacter = selectedChara;
|
||||
loop_resumeLoop();
|
||||
vTaskResume(secondLoop);
|
||||
|
||||
screenKey = MAIN_SCREEN;
|
||||
menuKey = STATUS_SCREEN;
|
||||
@@ -42,7 +42,7 @@ void menu_changeCharaScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteD
|
||||
sprintf(fileName, "/chara/%02x.bin", charaData[currentCharacter].idChara);
|
||||
|
||||
storage_readFile(fileName, mainSpriteData);
|
||||
loop_resumeLoop();
|
||||
vTaskResume(secondLoop);
|
||||
|
||||
screenKey = MAIN_SCREEN;
|
||||
menuKey = STATUS_SCREEN;
|
||||
@@ -64,6 +64,7 @@ void menu_changeCharaScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteD
|
||||
|
||||
storage_readFile(fileName, mainSpriteData);
|
||||
draw_drawSprite(sprite, 18, 72, mainSpriteData, 0, 6);
|
||||
|
||||
} else {
|
||||
tft_drawCenteredText("EMPTY", 4, 120);
|
||||
}
|
||||
@@ -81,7 +82,7 @@ void menu_changeCharaScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteD
|
||||
sprintf(fileName, "/chara/%02x.bin", charaData[currentCharacter].idChara);
|
||||
|
||||
storage_readFile(fileName, mainSpriteData);
|
||||
loop_resumeLoop();
|
||||
vTaskResume(secondLoop);
|
||||
|
||||
screenKey = MAIN_SCREEN;
|
||||
menuKey = STATUS_SCREEN;
|
||||
|
||||
@@ -50,8 +50,6 @@ void menu_drawClockEdit(TFT_eSprite &bg) {
|
||||
case K3_PRESSED:
|
||||
// Es un dia random, nada significativo, ya pondre mas adelante que tenga dia del año
|
||||
rtc.setTime(0, clockMinuteCount, clockHourCount, 1, 11, 2024);
|
||||
getLocalTime(&timeInfo, 50);
|
||||
dayUnixTime = mktime(&timeInfo) % SECONDS_IN_DAY;
|
||||
|
||||
coldBoot = false;
|
||||
|
||||
|
||||
@@ -18,6 +18,8 @@ void menu_drawHappyScreen(
|
||||
screenKey = MAIN_SCREEN; // TODO: Change for while battling
|
||||
menuKey = STATUS_SCREEN;
|
||||
|
||||
vTaskResume(secondLoop);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -47,6 +47,10 @@ void menu_drawDeathScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteDat
|
||||
void menu_evolutionScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* mainCharacterSprites);
|
||||
void menu_mainScreen();
|
||||
void menu_changeCharaScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* mainSpriteData, struct SpriteData* uiSpriteData);
|
||||
void menu_drawAngryScreen(
|
||||
TFT_eSprite &bg, TFT_eSprite &sprite,
|
||||
struct SpriteData* spriteData, struct SpriteData* smallUiElements
|
||||
);
|
||||
|
||||
void menu_sleepScreen_sleepAction();
|
||||
void menu_sleepScreen_recalculateSleep();
|
||||
|
||||
+24
-1
@@ -3,16 +3,39 @@
|
||||
#include "display/display.h"
|
||||
#include "defs/defs.h"
|
||||
#include "defs/chara_data.h"
|
||||
#include "animations/animations.h"
|
||||
#include "defs/sprite_data.h"
|
||||
|
||||
void menu_clearPoopScreen(
|
||||
TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct SpriteData* bigUiElements, struct SpriteData* smallUiElements
|
||||
) {
|
||||
printf("[AAAAAAA] pausing loop...\n");
|
||||
|
||||
vTaskSuspend(secondLoop);
|
||||
|
||||
printf("[AAAAAAA] loop paused...\n");
|
||||
|
||||
int cleanerXPos = 174;
|
||||
|
||||
menu_drawIdleScreen(bg, sprite, spriteData, bigUiElements, smallUiElements);
|
||||
lastUpdateTime = 0;
|
||||
|
||||
printf("[AAAAAAA] drawing idle screen...\n");
|
||||
|
||||
draw_drawBackground(bg, 90, 90, 3);
|
||||
uint8_t offsetX = menu_poopOverlay(bg, sprite, smallUiElements);
|
||||
|
||||
printf("[AAAAAAA] drawing animation...\n");
|
||||
|
||||
animate_performAnimation(sprite, spriteData, offsetX);
|
||||
|
||||
printf("[AAAAAAA] drawing overlay...\n");
|
||||
|
||||
menu_uiOverlay(sprite, bigUiElements);
|
||||
|
||||
printf("[AAAAAAA] idle screen down...\n");
|
||||
|
||||
tft_clearBuffer(sprite, TFT_TRANSPARENT);
|
||||
|
||||
while (cleanerXPos > 18) {
|
||||
draw_drawSprite(sprite, cleanerXPos, 72, smallUiElements, CLEANER_ICON, 6);
|
||||
draw_drawSprite(sprite, cleanerXPos, 120, smallUiElements, CLEANER_ICON, 6);
|
||||
|
||||
@@ -11,7 +11,8 @@ void training_screenTraining1(
|
||||
TFT_eSprite &bg, TFT_eSprite &sprite,
|
||||
struct SpriteData* mainCharaData, struct SpriteData* attackSprites
|
||||
) {
|
||||
|
||||
vTaskSuspend(secondLoop);
|
||||
|
||||
draw_drawBackground(bg, 90, 90, 3);
|
||||
draw_drawSpriteCentered(sprite, mainCharaData, 11, 6);
|
||||
|
||||
@@ -74,9 +75,5 @@ void training_screenTraining1(
|
||||
attackResult = ATTACK_PATTERN_MEDIOCRE;
|
||||
}
|
||||
|
||||
loop_pauseLoop();
|
||||
|
||||
training_displayTrainingResult(bg, sprite, mainCharaData, attackSprites, attackResult);
|
||||
|
||||
loop_resumeLoop();
|
||||
}
|
||||
@@ -5,10 +5,8 @@
|
||||
#include "defs/screen_defs.h"
|
||||
|
||||
void menu_uiOverlay(TFT_eSprite &charSprite, struct SpriteData* uiElements) {
|
||||
struct tm timeInfo;
|
||||
char hourBuffer[6];
|
||||
|
||||
getLocalTime(&timeInfo, RTC_TIMEOUT_THRESHOLD_TIME_MS);
|
||||
snprintf(hourBuffer, 6, "%02d:%02d", timeInfo.tm_hour, timeInfo.tm_min);
|
||||
|
||||
composite1.fillRect(0, 0, 240, 24, TFT_BLACK);
|
||||
|
||||
Reference in New Issue
Block a user