Que acaba de ocurrir?

Ah si, se ha cambiado el buffer, ocupaba todo el espacio contiguo disponible y no podía aprovecharlo para nada mas. Normal que no te dejara reservar un buffer de 240x240... Y menos ahora cuando has metido el light sleep.

Ah si, ahora hay light sleep, el micro baja hasta 4mA, lo cual lo considero suficiente para mi causa...
This commit is contained in:
Nacho
2025-05-30 00:24:36 +02:00
parent 43c10d02f5
commit 70a7144d52
36 changed files with 360 additions and 262 deletions
+5 -5
View File
@@ -8,7 +8,7 @@
uint64_t lastBeepTime = esp_timer_get_time();
uint8_t beepCounter = 0;
void menu_careMistakeScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct SpriteData* uiSpritesBig) {
void menu_careMistakeScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct SpriteData* uiSpritesBig) {
uint64_t currentTime = esp_timer_get_time();
uint8_t pressedButtons = buttons_getPressedButtons();
@@ -22,13 +22,13 @@ void menu_careMistakeScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite
}
if (currentTime - lastUpdateTime > ANIMATION_THRESHOLD_TIME_US) {
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawBackground(bg, 90, 90, 3);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
animate_performAttentionAnimation(composite, sprite, spriteData);
animate_performAttentionAnimation(sprite, spriteData);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
menu_uiOverlay(composite, sprite, uiSpritesBig);
menu_uiOverlay(sprite, uiSpritesBig);
lastUpdateTime = currentTime;
}
@@ -38,5 +38,5 @@ void menu_careMistakeScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite
beepCounter = 0;
}
tft_drawBuffer(composite);
tft_drawBuffer();
}
+11 -14
View File
@@ -4,8 +4,9 @@
#include "display/display.h"
#include "buttons/buttons.h"
#include "vpet/vpet.h"
#include "defs/screen_defs.h"
void menu_drawClock(TFT_eSprite &composite, TFT_eSprite &bg, int menuOption) {
void menu_drawClock(TFT_eSprite &bg) {
uint8_t pressedButtons = buttons_getPressedButtons();
switch (pressedButtons) {
case K2_PRESSED:
@@ -18,21 +19,18 @@ void menu_drawClock(TFT_eSprite &composite, TFT_eSprite &bg, int menuOption) {
char hourBuffer[6];
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawBackground(bg, 90, 90, 3);
snprintf(hourBuffer, 6, "%02d:%02d", timeInfo.tm_hour, timeInfo.tm_min);
composite.setTextSize(4);
composite.drawString(hourBuffer, 40, 90);
tft_drawText(hourBuffer, 4, 40, 90);
sniprintf(hourBuffer, 3, "%02d", timeInfo.tm_sec);
composite.setTextSize(2);
composite.drawString(hourBuffer, 170, 104);
tft_drawBuffer(composite);
tft_drawText(hourBuffer, 2, 170, 104);
tft_drawBuffer();
}
void menu_drawClockEdit(TFT_eSprite &composite, TFT_eSprite &bg) {
void menu_drawClockEdit(TFT_eSprite &bg) {
char textBuffer[6];
static int clockHourCount = 0;
@@ -64,13 +62,12 @@ void menu_drawClockEdit(TFT_eSprite &composite, TFT_eSprite &bg) {
break;
}
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawBackground(bg, 90, 90, 3);
snprintf(textBuffer, 6, "%02d:%02d", clockHourCount, clockMinuteCount);
composite.setTextSize(4);
composite.drawString(textBuffer, 40, 90);
composite.drawString("SET", 40, 122);
tft_drawText(textBuffer, 4, 40, 90);
tft_drawText("SET", 4, 40, 122);
tft_drawBuffer(composite);
tft_drawBuffer();
}
+5 -5
View File
@@ -6,7 +6,7 @@
#include "defs/sprite_data.h"
#include "vpet/lines/lines.h"
void menu_drawDeathScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiBigSprite, struct SpriteData* uiSmallSprite) {
void menu_drawDeathScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiBigSprite, struct SpriteData* uiSmallSprite) {
static uint8_t frameCounter = 0;
uint64_t currentTime = esp_timer_get_time();
@@ -32,15 +32,15 @@ void menu_drawDeathScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &
}
if (currentTime - lastUpdateTime > ANIMATION_THRESHOLD_TIME_US) {
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawSprite(composite, sprite, 72 + (6 * (frameCounter == 0)), 72, uiBigSprite, EMPTY_EGG, 6);
draw_drawBackground(bg, 90, 90, 3);
draw_drawSprite(sprite, 72 + (6 * (frameCounter == 0)), 72, uiBigSprite, EMPTY_EGG, 6);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
menu_uiOverlay(composite, sprite, uiSmallSprite);
menu_uiOverlay(sprite, uiSmallSprite);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
frameCounter = (frameCounter + 1) % 32;
lastUpdateTime = currentTime;
}
tft_drawBuffer(composite);
tft_drawBuffer();
}
+10 -10
View File
@@ -9,7 +9,7 @@
#include "vpet/vpet.h"
#include "vpet/lines/lines.h"
void menu_eggHatchScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiBigSprite, struct SpriteData* uiSmallSprite) {
void menu_eggHatchScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiBigSprite, struct SpriteData* uiSmallSprite) {
static bool eggSpriteFrame = false;
uint8_t frameCounter = 0;
@@ -30,13 +30,13 @@ void menu_eggHatchScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &s
uint64_t currentTime = esp_timer_get_time();
if (currentTime - lastUpdateTime > ANIMATION_THRESHOLD_TIME_US) {
if (charaData.hatchTimer <= currentLine[currentCharacter]->hatchTime) {
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawSpriteCentered(composite, sprite, &currentEgg->eggSprite, eggSpriteFrame, 6);
draw_drawBackground(bg, 90, 90, 3);
draw_drawSpriteCentered(sprite, &currentEgg->eggSprite, eggSpriteFrame, 6);
eggSpriteFrame = !eggSpriteFrame;
lastUpdateTime = currentTime;
tft_drawBuffer(composite);
tft_drawBuffer();
} else if (charaData.hatchTimer > currentLine[currentCharacter]->hatchTime && !charaData.hatched) {
@@ -44,16 +44,16 @@ void menu_eggHatchScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &s
tone(SPK_PIN, 4100, 35);
tone(SPK_PIN, 3500, 35);
draw_drawBackground(composite, bg, 90, 90, 3);
animate_performHatchingAnimation(composite, sprite, &currentEgg->eggSprite);
draw_drawBackground(bg, 90, 90, 3);
animate_performHatchingAnimation(sprite, &currentEgg->eggSprite);
tft_drawBuffer(composite);
tft_drawBuffer();
}
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawSpriteCentered(composite, sprite, &currentEgg->eggSprite, 2, 6);
draw_drawBackground(bg, 90, 90, 3);
draw_drawSpriteCentered(sprite, &currentEgg->eggSprite, 2, 6);
tft_drawBuffer(composite);
tft_drawBuffer();
delay(2000);
+5 -5
View File
@@ -9,7 +9,7 @@
#include "defs/chara_data.h"
void menu_lineSwitcher(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiSmallSprite) {
void menu_lineSwitcher(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiSmallSprite) {
static uint8_t eggCounter = 0;
uint8_t buttonsPressed = buttons_getPressedButtons();
@@ -34,13 +34,13 @@ void menu_lineSwitcher(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &spr
break;
}
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawBackground(bg, 90, 90, 3);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
draw_drawSpriteCentered(composite, sprite, &eggSelection[eggCounter].eggSprite, 0, 6);
draw_drawSpriteCentered(sprite, &eggSelection[eggCounter].eggSprite, 0, 6);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
draw_drawSprite(composite, sprite, 194, 96, uiSmallSprite, ARROW_ICON, 6);
draw_drawSprite(sprite, 194, 96, uiSmallSprite, ARROW_ICON, 6);
tft_drawBuffer(composite);
tft_drawBuffer();
}
void menu_reloadEggs(uint8_t selectedEgg) {
+5 -5
View File
@@ -5,7 +5,7 @@
#include "display/display.h"
void menu_feedingScreen(
TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &charaSprite,
TFT_eSprite &bg, TFT_eSprite &charaSprite,
struct SpriteData* uiSpriteData, struct SpriteData* charaSpriteData, uint8_t item
) {
static int currentAnimationFrame = 0;
@@ -13,13 +13,13 @@ void menu_feedingScreen(
uint64_t currentTime = esp_timer_get_time();
if (currentTime - lastUpdateTime > ANIMATION_THRESHOLD_TIME_US) {
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawBackground(bg, 90, 90, 3);
tft_clearBuffer(charaSprite, TFT_TRANSPARENT);
animate_performEatingAnimation(composite, charaSprite, charaSpriteData);
animate_performEatingAnimation(charaSprite, charaSpriteData);
tft_clearBuffer(charaSprite, TFT_TRANSPARENT);
draw_drawSprite(composite, charaSprite, 24, 120, uiSpriteData, item, 6);
draw_drawSprite(charaSprite, 24, 120, uiSpriteData, item, 6);
lastUpdateTime = currentTime;
currentAnimationFrame++;
@@ -32,7 +32,7 @@ void menu_feedingScreen(
submenuKey = -1;
}
tft_drawBuffer(composite);
tft_drawBuffer();
uint8_t pressedButtons = buttons_getPressedButtons();
switch (pressedButtons) {
+9 -10
View File
@@ -5,7 +5,7 @@
#include "defs/chara_data.h"
#include "vpet/vpet.h"
void menu_foodScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &mainChara, struct SpriteData* spriteData) {
void menu_foodScreen(TFT_eSprite &bg, TFT_eSprite &mainChara, struct SpriteData* spriteData) {
if (charaData.sleepy) {
tone(SPK_PIN, BEEP_FREQ_HZ, BEEP_LEN_MS);
delay(100);
@@ -72,22 +72,21 @@ void menu_foodScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &mainC
vpet_computeCallLight();
}
composite.setTextSize(4);
draw_drawBackground(composite, bg, 90, 90, 3);
menu_foodScreen_drawEntry(composite, mainChara, spriteData, 0, FOOD_ICON, "Meat");
menu_foodScreen_drawEntry(composite, mainChara, spriteData, 1, PILL_ICON, "Pill");
draw_drawBackground(bg, 90, 90, 3);
menu_foodScreen_drawEntry(mainChara, spriteData, 0, FOOD_ICON, "Meat");
menu_foodScreen_drawEntry(mainChara, spriteData, 1, PILL_ICON, "Pill");
draw_drawSprite(composite, mainChara, 5, (arrowPosition * 34) + 5, spriteData, ARROW_ICON, 4);
draw_drawSprite(mainChara, 5, (arrowPosition * 34) + 5, spriteData, ARROW_ICON, 4);
tft_drawBuffer(composite);
tft_drawBuffer();
}
void menu_foodScreen_drawEntry(
TFT_eSprite &composite, TFT_eSprite &mainChara, struct SpriteData* spriteData,
TFT_eSprite &mainChara, struct SpriteData* spriteData,
uint8_t entryId, uint8_t spriteNumber, const char* textEntry
) {
tft_clearBuffer(mainChara, TFT_TRANSPARENT);
draw_drawSprite(composite, mainChara, 45, (entryId * 34) + 5, spriteData, spriteNumber, 4);
composite.drawString(textEntry, 80, (entryId * 34) + 5);
draw_drawSprite(mainChara, 45, (entryId * 34) + 5, spriteData, spriteNumber, 4);
tft_drawText(textEntry, 4, 80, (entryId * 34) + 5);
}
+6 -6
View File
@@ -6,7 +6,7 @@
#include "animations/animations.h"
void menu_drawHappyScreen(
TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite,
TFT_eSprite &bg, TFT_eSprite &sprite,
struct SpriteData* spriteData, struct SpriteData* smallUiElements
) {
uint8_t frameCounter = 0;
@@ -21,10 +21,10 @@ void menu_drawHappyScreen(
return;
}
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawBackground(bg, 90, 90, 3);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
animate_performHappyAnimation(composite, sprite, spriteData);
animate_performHappyAnimation(sprite, spriteData);
if (frameCounter % 2 == 0) {
tone(SPK_PIN, 7500, 50);
@@ -33,14 +33,14 @@ void menu_drawHappyScreen(
tone(SPK_PIN, 1000, 50);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
draw_drawSprite(composite, sprite, 18, 72, smallUiElements, FIREWORKS_ICON, 6);
draw_drawSprite(composite, sprite, 174, 72, smallUiElements, FIREWORKS_ICON, 6);
draw_drawSprite(sprite, 18, 72, smallUiElements, FIREWORKS_ICON, 6);
draw_drawSprite(sprite, 174, 72, smallUiElements, FIREWORKS_ICON, 6);
}
frameCounter++;
lastUpdateTime = currentTime;
}
tft_drawBuffer(composite);
tft_drawBuffer();
}
}
+6 -6
View File
@@ -8,7 +8,7 @@
uint64_t lastUpdateTime = esp_timer_get_time();
void menu_drawIdleScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct SpriteData* bigUiElements, struct SpriteData* smallUiElements) {
void menu_drawIdleScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct SpriteData* bigUiElements, struct SpriteData* smallUiElements) {
if (coldBoot) {
screenKey = TITLE_SCREEN;
return;
@@ -45,19 +45,19 @@ void menu_drawIdleScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &s
uint64_t currentTime = esp_timer_get_time();
if (currentTime - lastUpdateTime > ANIMATION_THRESHOLD_TIME_US) {
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawBackground(bg, 90, 90, 3);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
uint8_t offsetX = menu_poopOverlay(composite, sprite, smallUiElements);
uint8_t offsetX = menu_poopOverlay(sprite, smallUiElements);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
animate_performAnimation(composite, sprite, spriteData, offsetX);
animate_performAnimation(sprite, spriteData, offsetX);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
menu_uiOverlay(composite, sprite, bigUiElements);
menu_uiOverlay(sprite, bigUiElements);
lastUpdateTime = currentTime;
}
tft_drawBuffer(composite);
tft_drawBuffer();
}
+24 -24
View File
@@ -4,46 +4,46 @@
#include <TFT_eSPI.h>
#include "defs/defs.h"
void menu_drawCurrentMenuOption(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &icon, struct SpriteData* spriteData);
void menu_drawClock(TFT_eSprite &composite, TFT_eSprite &bg, int menuOption);
void menu_drawClockEdit(TFT_eSprite &composite, TFT_eSprite &bg);
void menu_drawTitle(TFT_eSprite &composite, TFT_eSprite &bg);
void menu_drawIdleScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct SpriteData* bigUiElements, struct SpriteData* smallUiElements);
void menu_offScreen(TFT_eSprite &buffer);
void menu_statusScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct CharacterData* charaData);
void menu_statusScreen_drawStat(TFT_eSprite &composite, TFT_eSprite &sprite, struct SpriteData* spriteData, int x, int y, const char* text, uint8_t statValue);
void menu_timerFinishedScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData);
void menu_uiOverlay(TFT_eSprite &composite, TFT_eSprite &charSprite, struct SpriteData* uiElements);
void menu_foodScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &mainChara, struct SpriteData* spriteData);
void menu_drawCurrentMenuOption(TFT_eSprite &bg, TFT_eSprite &icon, struct SpriteData* spriteData);
void menu_drawClock(TFT_eSprite &bg);
void menu_drawClockEdit(TFT_eSprite &bg);
void menu_drawTitle(TFT_eSprite &bg);
void menu_drawIdleScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct SpriteData* bigUiElements, struct SpriteData* smallUiElements);
void menu_offScreen();
void menu_statusScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct CharacterData* charaData);
void menu_statusScreen_drawStat(TFT_eSprite &sprite, struct SpriteData* spriteData, int x, int y, const char* text, uint8_t statValue);
void menu_timerFinishedScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData);
void menu_uiOverlay(TFT_eSprite &charSprite, struct SpriteData* uiElements);
void menu_foodScreen(TFT_eSprite &bg, TFT_eSprite &mainChara, struct SpriteData* spriteData);
void menu_foodScreen_drawEntry(
TFT_eSprite &composite, TFT_eSprite &mainChara, struct SpriteData* spriteData,
TFT_eSprite &mainChara, struct SpriteData* spriteData,
uint8_t entryId, uint8_t spriteNumber, const char* textEntry
);
void menu_feedingScreen(
TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &charaSprite,
TFT_eSprite &bg, TFT_eSprite &charaSprite,
struct SpriteData* uiSpriteData, struct SpriteData* charaSpriteData, uint8_t item
);
void menu_refuseScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &mainChara, struct SpriteData* spriteData);
void menu_sleepyScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* charaSprites, struct SpriteData* uiSprites);
void menu_careMistakeScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct SpriteData* uiSpritesBig);
void menu_refuseScreen(TFT_eSprite &bg, TFT_eSprite &mainChara, struct SpriteData* spriteData);
void menu_sleepyScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* charaSprites, struct SpriteData* uiSprites);
void menu_careMistakeScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct SpriteData* uiSpritesBig);
void menu_sleepingScreen(
TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite,
TFT_eSprite &bg, TFT_eSprite &sprite,
struct SpriteData* mainCharaData, struct SpriteData* bigUiElements, struct SpriteData* smallUIElements
);
void menu_poopScreen(
TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite,
TFT_eSprite &bg, TFT_eSprite &sprite,
struct SpriteData* spriteData, struct SpriteData* smallUiElements, struct SpriteData* bigUiElements
);
uint8_t menu_poopOverlay(TFT_eSprite &composite, TFT_eSprite &sprite, struct SpriteData* smallUiElements);
void menu_clearPoopScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct SpriteData* bigUiElements, struct SpriteData* smallUiElements);
uint8_t menu_poopOverlay(TFT_eSprite &sprite, struct SpriteData* smallUiElements);
void menu_clearPoopScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct SpriteData* bigUiElements, struct SpriteData* smallUiElements);
void menu_drawHappyScreen(
TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite,
TFT_eSprite &bg, TFT_eSprite &sprite,
struct SpriteData* spriteData, struct SpriteData* smallUiElements
);
void menu_lineSwitcher(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiSmallSprite);
void menu_eggHatchScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiBigSprite, struct SpriteData* uiSmallSprite);
void menu_lineSwitcher(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiSmallSprite);
void menu_eggHatchScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiBigSprite, struct SpriteData* uiSmallSprite);
void menu_reloadEggs(uint8_t selectedEgg);
void menu_drawDeathScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiBigSprite, struct SpriteData* uiSmallSprite);
void menu_drawDeathScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiBigSprite, struct SpriteData* uiSmallSprite);
void menu_sleepScreen_sleepAction();
void menu_sleepScreen_recalculateSleep();
+13 -14
View File
@@ -11,8 +11,8 @@
const int textXPos = 10;
const int textYPos = 180;
void menu_drawCurrentMenuOption(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &icon, struct SpriteData* spriteData) {
draw_drawBackground(composite, bg, 90, 90, 3);
void menu_drawCurrentMenuOption(TFT_eSprite &bg, TFT_eSprite &icon, struct SpriteData* spriteData) {
draw_drawBackground(bg, 90, 90, 3);
uint8_t pressedButtons = buttons_getPressedButtons();
@@ -58,40 +58,39 @@ void menu_drawCurrentMenuOption(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSp
return;
}
composite.setTextSize(4);
draw_drawSpriteCentered(composite, icon, spriteData, menuKey % 8, 6);
draw_drawSpriteCentered(icon, spriteData, menuKey % 8, 6);
switch(menuKey % 9) {
case STATUS_SCREEN_MENU:
tft_drawCenteredText(composite, "Status", 4, textYPos);
tft_drawCenteredText("Status", 4, textYPos);
break;
case FOOD_SCREEN_MENU:
tft_drawCenteredText(composite, "Food", 4, textYPos);
tft_drawCenteredText("Food", 4, textYPos);
break;
case TRAIN_SCREEN_MENU:
tft_drawCenteredText(composite, "Train", 4, textYPos);
tft_drawCenteredText("Train", 4, textYPos);
break;
case BATTLE_SCREEN_MENU:
tft_drawCenteredText(composite, "Battle", 4, textYPos);
tft_drawCenteredText("Battle", 4, textYPos);
break;
case POOP_SCREEN_MENU:
tft_drawCenteredText(composite, "Cleanup", 4, textYPos);
tft_drawCenteredText("Cleanup", 4, textYPos);
break;
case MEDICAL_SCREEN_MENU:
tft_drawCenteredText(composite, "Medical", 4, textYPos);
tft_drawCenteredText("Medical", 4, textYPos);
break;
case SLEEP_SCREEN_MENU:
tft_drawCenteredText(composite, "Sleep", 4, textYPos);
tft_drawCenteredText("Sleep", 4, textYPos);
break;
case SETTINGS_SCREEN_MENU:
tft_drawCenteredText(composite, "Settings", 4, textYPos);
tft_drawCenteredText("Settings", 4, textYPos);
break;
case 8:
@@ -101,9 +100,9 @@ void menu_drawCurrentMenuOption(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSp
break;
}
menu_uiOverlay(composite, icon, spriteData);
menu_uiOverlay(icon, spriteData);
tft_drawBuffer(composite);
tft_drawBuffer();
}
void menu_sleepScreen_sleepAction() {
+4 -2
View File
@@ -3,11 +3,13 @@
#include "buttons/buttons.h"
#include "display/display.h"
void menu_offScreen(TFT_eSprite &buffer) {
void menu_offScreen() {
uint8_t buttons = buttons_getPressedButtons();
if (buttons != 0) {
tft_drawBuffer(buffer);
tft_drawBuffer();
digitalWrite(BL_PIN, HIGH);
screenKey = IDLE_SCREEN;
} else {
screenOff = true;
}
}
+5 -5
View File
@@ -6,17 +6,17 @@
#include "defs/sprite_data.h"
void menu_clearPoopScreen(
TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct SpriteData* bigUiElements, struct SpriteData* smallUiElements
TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct SpriteData* bigUiElements, struct SpriteData* smallUiElements
) {
int cleanerXPos = 174;
menu_drawIdleScreen(composite, bg, sprite, spriteData, bigUiElements, smallUiElements);
menu_drawIdleScreen(bg, sprite, spriteData, bigUiElements, smallUiElements);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
while (cleanerXPos > 18) {
draw_drawSprite(composite, sprite, cleanerXPos, 72, smallUiElements, CLEANER_ICON, 6);
draw_drawSprite(composite, sprite, cleanerXPos, 120, smallUiElements, CLEANER_ICON, 6);
tft_drawBuffer(composite);
draw_drawSprite(sprite, cleanerXPos, 72, smallUiElements, CLEANER_ICON, 6);
draw_drawSprite(sprite, cleanerXPos, 120, smallUiElements, CLEANER_ICON, 6);
tft_drawBuffer();
cleanerXPos -= 6;
delay(50);
}
+2 -2
View File
@@ -5,14 +5,14 @@
#include "defs/chara_data.h"
#include "display/display.h"
uint8_t menu_poopOverlay(TFT_eSprite &composite, TFT_eSprite &sprite, struct SpriteData* smallUiElements) {
uint8_t menu_poopOverlay(TFT_eSprite &sprite, struct SpriteData* smallUiElements) {
static bool poopFlip = false;
const uint8_t poopStartY = 120;
uint8_t poopStartX = 174;
bool poopTop = false;
for (int i = 0; i < charaData.poopNumber; i++) {
draw_drawSprite(composite, sprite, poopStartX, poopStartY - (48 * poopTop), smallUiElements, POOP_ICON, 6, poopFlip);
draw_drawSprite(sprite, poopStartX, poopStartY - (48 * poopTop), smallUiElements, POOP_ICON, 6, poopFlip);
poopStartX -= (i % 2) * 48;
poopTop = !poopTop;
}
+9 -9
View File
@@ -7,7 +7,7 @@
#include "defs/sprite_data.h"
void menu_poopScreen(
TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite,
TFT_eSprite &bg, TFT_eSprite &sprite,
struct SpriteData* spriteData, struct SpriteData* smallUiElements, struct SpriteData* bigUiElements
) {
uint8_t animationFrame = 0;
@@ -19,13 +19,13 @@ void menu_poopScreen(
uint64_t currentTime = esp_timer_get_time();
if (currentTime - lastUpdateTime > ANIMATION_THRESHOLD_TIME_US && animationFrame < 4) {
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawBackground(bg, 90, 90, 3);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
draw_drawSprite(composite, sprite, 72 + (animationPosition * 6), 72, spriteData, 6, 6);
draw_drawSprite(sprite, 72 + (animationPosition * 6), 72, spriteData, 6, 6);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
menu_uiOverlay(composite, sprite, bigUiElements);
menu_uiOverlay(sprite, bigUiElements);
animationFrame++;
animationPosition = !animationPosition;
@@ -42,16 +42,16 @@ void menu_poopScreen(
beepedAlready = true;
}
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawBackground(bg, 90, 90, 3);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
draw_drawSprite(composite, sprite, 174, 120, smallUiElements, POOP_ICON, 6);
draw_drawSprite(sprite, 174, 120, smallUiElements, POOP_ICON, 6);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
menu_uiOverlay(composite, sprite, bigUiElements);
menu_uiOverlay(sprite, bigUiElements);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
draw_drawSprite(composite, sprite, 72, 72, spriteData, 7, 6);
draw_drawSprite(sprite, 72, 72, spriteData, 7, 6);
animationFrame++;
animationPosition = !animationPosition;
@@ -76,6 +76,6 @@ void menu_poopScreen(
break;
}
tft_drawBuffer(composite);
tft_drawBuffer();
}
}
+4 -4
View File
@@ -6,7 +6,7 @@
#include "defs/sprite_data.h"
#include "animations/animations.h"
void menu_refuseScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &mainChara, struct SpriteData* spriteData) {
void menu_refuseScreen(TFT_eSprite &bg, TFT_eSprite &mainChara, struct SpriteData* spriteData) {
static uint8_t currentAnimationFrame = 0;
static bool soundPlayed = false;
@@ -26,8 +26,8 @@ void menu_refuseScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &mai
}
if (currentTime - lastUpdateTime > ANIMATION_THRESHOLD_TIME_US) {
draw_drawBackground(composite, bg, 90, 90, 3);
animate_performRefuseAnimation(composite, mainChara, spriteData);
draw_drawBackground(bg, 90, 90, 3);
animate_performRefuseAnimation(mainChara, spriteData);
lastUpdateTime = currentTime;
currentAnimationFrame++;
@@ -46,5 +46,5 @@ void menu_refuseScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &mai
screenKey = IDLE_SCREEN;
}
tft_drawBuffer(composite);
tft_drawBuffer();
}
+6 -6
View File
@@ -6,7 +6,7 @@
#include "animations/animations.h"
#include "defs/chara_data.h"
void menu_sleepyScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* charaSprites, struct SpriteData* uiSprites) {
void menu_sleepyScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* charaSprites, struct SpriteData* uiSprites) {
if (!charaData.asleep && !charaData.sleepy) {
screenKey = IDLE_SCREEN;
return;
@@ -30,16 +30,16 @@ void menu_sleepyScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &spr
}
if (currentTime - lastUpdateTime > ANIMATION_SLEEPY_THRESHOLD_TIME_US) {
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawBackground(bg, 90, 90, 3);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
animate_performSleepyAnimation(composite, sprite, charaSprites);
animate_performSleepyAnimation(sprite, charaSprites);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
menu_uiOverlay(composite, sprite, uiSprites);
menu_uiOverlay(sprite, uiSprites);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
menu_uiOverlay(composite, sprite, uiSprites);
menu_uiOverlay(sprite, uiSprites);
lastUpdateTime = currentTime;
}
@@ -53,5 +53,5 @@ void menu_sleepyScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &spr
beepCounter++;
}
tft_drawBuffer(composite);
tft_drawBuffer();
}
+7 -7
View File
@@ -7,7 +7,7 @@
#include "defs/chara_data.h"
void menu_sleepingScreen(
TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite,
TFT_eSprite &bg, TFT_eSprite &sprite,
struct SpriteData* mainCharaData, struct SpriteData* bigUiElements, struct SpriteData* smallUIElements
) {
if (charaData.sleepy && !charaData.asleep) {
@@ -36,22 +36,22 @@ void menu_sleepingScreen(
}
if (currentTime - lastUpdateTime > ANIMATION_SLEEPY_THRESHOLD_TIME_US) {
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawBackground(bg, 90, 90, 3);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
animate_performSleepyAnimation(composite, sprite, mainCharaData);
animate_performSleepyAnimation(sprite, mainCharaData);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
draw_drawSprite(composite, sprite, 72, 72, bigUiElements, BED_SPRITE, 6);
draw_drawSprite(sprite, 72, 72, bigUiElements, BED_SPRITE, 6);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
draw_drawSprite(composite, sprite, 172, 72, smallUIElements, ZZZ_ICON, 6);
draw_drawSprite(sprite, 172, 72, smallUIElements, ZZZ_ICON, 6);
tft_clearBuffer(sprite, TFT_TRANSPARENT);
menu_uiOverlay(composite, sprite, bigUiElements);
menu_uiOverlay(sprite, bigUiElements);
lastUpdateTime = currentTime;
}
tft_drawBuffer(composite);
tft_drawBuffer();
}
+8 -10
View File
@@ -6,7 +6,7 @@
#include "display/display.h"
#include "draw/draw.h"
void menu_statusScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct CharacterData* charaData) {
void menu_statusScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData, struct CharacterData* charaData) {
tft_clearBuffer(sprite, TFT_TRANSPARENT);
uint8_t pressedButtons = buttons_getPressedButtons();
@@ -19,27 +19,25 @@ void menu_statusScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &spr
break;
}
draw_drawBackground(composite, bg, 90, 90, 3);
composite.setTextSize(4);
draw_drawBackground(bg, 90, 90, 3);
menu_statusScreen_drawStat(composite, sprite, spriteData, 10, 10, "Hunger", charaData->hunger);
menu_statusScreen_drawStat(composite, sprite, spriteData, 10, 80, "Strength", charaData->strength);
menu_statusScreen_drawStat(composite, sprite, spriteData, 10, 150, "Effort", charaData->effort);
menu_statusScreen_drawStat(sprite, spriteData, 10, 10, "Hunger", charaData->hunger);
menu_statusScreen_drawStat(sprite, spriteData, 10, 80, "Strength", charaData->strength);
menu_statusScreen_drawStat(sprite, spriteData, 10, 150, "Effort", charaData->effort);
tft_drawBuffer(composite);
tft_drawBuffer();
}
void menu_statusScreen_drawStat(TFT_eSprite &composite, TFT_eSprite &sprite, struct SpriteData* spriteData, int x, int y, const char* text, uint8_t statValue) {
void menu_statusScreen_drawStat(TFT_eSprite &sprite, struct SpriteData* spriteData, int x, int y, const char* text, uint8_t statValue) {
uint8_t icon;
composite.drawString(text, x, y);
tft_drawText(text, 4, x, y);
for (int i = 0; i < 4; i++) {
if (i < statValue) { icon = FULL_HEART_ICON; }
else { icon = EMPTY_HEART_ICON; }
draw_drawSprite(
composite,
sprite,
15 + (i * 32),
y + 30,
+1 -1
View File
@@ -2,7 +2,7 @@
int interruptKey = -1;
void menu_timerFinishedScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData) {
void menu_timerFinishedScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* spriteData) {
lastPressedButtonTime = esp_timer_get_time();
digitalWrite(BL_PIN, HIGH);
+5 -7
View File
@@ -4,20 +4,18 @@
#include "defs/defs.h"
#include "buttons/buttons.h"
void menu_drawTitle(TFT_eSprite &composite, TFT_eSprite &bg) {
void menu_drawTitle(TFT_eSprite &bg) {
uint8_t pressedButtons = buttons_getPressedButtons();
if (pressedButtons == 8 || pressedButtons == 4) {
screenKey = CLOCK_EDIT_SCREEN;
return;
}
draw_drawBackground(composite, bg, 90, 90, 3);
draw_drawBackground(bg, 90, 90, 3);
composite.setTextSize(4);
tft_drawCenteredText(composite, "NacaPet", 4, 40);
tft_drawCenteredText("NacaPet", 4, 40);
composite.setTextSize(2);
tft_drawCenteredText(composite, VERSION, 2, 80);
tft_drawCenteredText(VERSION, 2, 80);
tft_drawBuffer(composite);
tft_drawBuffer();
}
+7 -11
View File
@@ -2,27 +2,23 @@
#include "draw/draw.h"
#include "display/display.h"
#include "defs/chara_data.h"
#include "defs/screen_defs.h"
void menu_uiOverlay(TFT_eSprite &composite, TFT_eSprite &charSprite, struct SpriteData* uiElements) {
void menu_uiOverlay(TFT_eSprite &charSprite, struct SpriteData* uiElements) {
struct tm timeInfo;
char hourBuffer[6];
composite.setTextSize(2);
composite.setTextColor(TFT_WHITE);
composite.fillRect(0, 0, 240, 24, TFT_BLACK);
getLocalTime(&timeInfo, RTC_TIMEOUT_THRESHOLD_TIME_MS);
snprintf(hourBuffer, 6, "%02d:%02d", timeInfo.tm_hour, timeInfo.tm_min);
snprintf(hourBuffer, 6, "%02d:%02d", timeInfo.tm_hour, timeInfo.tm_min);
composite.drawString(hourBuffer, 4, 4);
composite1.fillRect(0, 0, 240, 24, TFT_BLACK);
tft_drawText(hourBuffer, 2, 4, 4, TFT_WHITE);
snprintf(hourBuffer, 6, "%05d", stepCounter);
composite.drawString(hourBuffer, 176, 4);
tft_drawText(hourBuffer, 2, 176, 4, TFT_WHITE);
composite.setTextColor(TFT_BLACK);
if (charaData.careMistakeCallLight) {
tft_clearBuffer(charSprite, TFT_TRANSPARENT);
draw_drawSprite(composite, charSprite, 192, 192, uiElements, CARE_MISTAKE_CALL_LIGHT, 2);
draw_drawSprite(charSprite, 192, 192, uiElements, CARE_MISTAKE_CALL_LIGHT, 2);
}
}