mirror of
https://github.com/nacabaro/nacapet.git
synced 2026-09-30 23:21:37 +00:00
Cosas, muchas cosas, exageracion de cossas, abundancia de cosas....
- Seleccion de huevo - Scripts de conversion de linea - Carga de sprites - Se produce nacimiento
This commit is contained in:
+10
-11
@@ -8,12 +8,12 @@
|
||||
void menu_drawClock(TFT_eSprite &composite, TFT_eSprite &bg, int menuOption) {
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case 4:
|
||||
screenKey = IDLE_SCREEN;
|
||||
break;
|
||||
case K2_PRESSED:
|
||||
screenKey = IDLE_SCREEN;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
char hourBuffer[6];
|
||||
@@ -39,26 +39,25 @@ void menu_drawClockEdit(TFT_eSprite &composite, TFT_eSprite &bg) {
|
||||
static int clockMinuteCount = 0;
|
||||
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
lastPressedButtonTime = esp_timer_get_time();
|
||||
|
||||
switch (pressedButtons) {
|
||||
case 8:
|
||||
case K1_PRESSED:
|
||||
clockHourCount = (clockHourCount + 1) % 24;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
case K2_PRESSED:
|
||||
clockMinuteCount = (clockMinuteCount + 1) % 60;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
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) % 86400;
|
||||
|
||||
screenKey = CLOCK_SCREEN;
|
||||
onActionTimerDelta();
|
||||
vpet_initTimer();
|
||||
coldBoot = false;
|
||||
|
||||
screenKey = CLOCK_SCREEN;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
#include "menu.h"
|
||||
#include "defs/defs.h"
|
||||
#include "draw/draw.h"
|
||||
#include "display/display.h"
|
||||
#include "buttons/buttons.h"
|
||||
#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) {
|
||||
static uint8_t frameCounter = 0;
|
||||
uint64_t currentTime = esp_timer_get_time();
|
||||
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case K1_PRESSED:
|
||||
lines_getAvailableLines();
|
||||
screenKey = EGG_SELECT_SCREEN;
|
||||
return;
|
||||
break;
|
||||
|
||||
case K2_PRESSED:
|
||||
screenKey = CLOCK_SCREEN;
|
||||
return;
|
||||
break;
|
||||
|
||||
case K3_PRESSED:
|
||||
lastUpdateTime = currentTime;
|
||||
frameCounter = 0;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
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);
|
||||
tft_clearBuffer(sprite, TFT_TRANSPARENT);
|
||||
menu_uiOverlay(composite, sprite, uiSmallSprite);
|
||||
tft_clearBuffer(sprite, TFT_TRANSPARENT);
|
||||
|
||||
frameCounter = (frameCounter + 1) % 32;
|
||||
lastUpdateTime = currentTime;
|
||||
}
|
||||
|
||||
tft_drawBuffer(composite);
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
#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.h"
|
||||
#include "vpet/lines/lines.h"
|
||||
|
||||
void menu_eggHatchScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiBigSprite, struct SpriteData* uiSmallSprite) {
|
||||
static bool eggSpriteFrame = false;
|
||||
uint8_t frameCounter = 0;
|
||||
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case K3_PRESSED:
|
||||
case K1_PRESSED:
|
||||
break;
|
||||
|
||||
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.hatchTimer <= currentLine[currentCharacter]->hatchTime) {
|
||||
draw_drawBackground(composite, bg, 90, 90, 3);
|
||||
draw_drawSpriteCentered(composite, sprite, ¤tEgg->eggSprite, eggSpriteFrame, 6);
|
||||
|
||||
eggSpriteFrame = !eggSpriteFrame;
|
||||
lastUpdateTime = currentTime;
|
||||
|
||||
tft_drawBuffer(composite);
|
||||
|
||||
|
||||
} else if (charaData.hatchTimer > currentLine[currentCharacter]->hatchTime && !charaData.hatched) {
|
||||
for (int i = 0; i < 30; i++) {
|
||||
tone(SPK_PIN, 4100, 35);
|
||||
tone(SPK_PIN, 3500, 35);
|
||||
|
||||
draw_drawBackground(composite, bg, 90, 90, 3);
|
||||
animate_performHatchingAnimation(composite, sprite, ¤tEgg->eggSprite);
|
||||
|
||||
tft_drawBuffer(composite);
|
||||
}
|
||||
|
||||
draw_drawBackground(composite, bg, 90, 90, 3);
|
||||
draw_drawSpriteCentered(composite, sprite, ¤tEgg->eggSprite, 2, 6);
|
||||
|
||||
tft_drawBuffer(composite);
|
||||
|
||||
delay(2000);
|
||||
|
||||
lines_onHatchComplete();
|
||||
|
||||
vpet_computeCallLight();
|
||||
|
||||
interruptKey = CARE_MISTAKE_SCREEN;
|
||||
screenKey = TIMER_FINISHED_SCREEN;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
#include "menu.h"
|
||||
#include "draw/draw.h"
|
||||
#include "defs/defs.h"
|
||||
#include "vpet/vpet.h"
|
||||
#include "display/display.h"
|
||||
#include "defs/sprite_data.h"
|
||||
#include "buttons/buttons.h"
|
||||
#include "vpet/lines/lines.h"
|
||||
#include "defs/chara_data.h"
|
||||
|
||||
|
||||
void menu_lineSwitcher(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiSmallSprite) {
|
||||
static uint8_t eggCounter = 0;
|
||||
|
||||
uint8_t buttonsPressed = buttons_getPressedButtons();
|
||||
switch(buttonsPressed) {
|
||||
case K1_PRESSED:
|
||||
eggCounter = (eggCounter + 1) % eggNumber;
|
||||
break;
|
||||
|
||||
case K2_PRESSED:
|
||||
menu_reloadEggs(eggCounter);
|
||||
eggCounter = 0;
|
||||
screenKey = EGG_HATCH_SCREEN;
|
||||
return;
|
||||
break;
|
||||
|
||||
case K3_PRESSED:
|
||||
screenKey = IDLE_SCREEN;
|
||||
return;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
draw_drawBackground(composite, bg, 90, 90, 3);
|
||||
tft_clearBuffer(sprite, TFT_TRANSPARENT);
|
||||
draw_drawSpriteCentered(composite, sprite, &eggSelection[eggCounter].eggSprite, 0, 6);
|
||||
tft_clearBuffer(sprite, TFT_TRANSPARENT);
|
||||
draw_drawSprite(composite, sprite, 194, 96, uiSmallSprite, ARROW_ICON, 6);
|
||||
|
||||
tft_drawBuffer(composite);
|
||||
}
|
||||
|
||||
void menu_reloadEggs(uint8_t selectedEgg) {
|
||||
char fileName[strlen(eggSelection[selectedEgg].fileName) + 1];
|
||||
strcpy(fileName, eggSelection[selectedEgg].fileName);
|
||||
|
||||
lines_freeEggList();
|
||||
|
||||
printf("[DEBUG] fileName=%s\n", fileName);
|
||||
|
||||
lines_getSingleLine(fileName);
|
||||
lines_getLineCareMistakes(fileName);
|
||||
|
||||
charaData.hatching = true;
|
||||
}
|
||||
@@ -37,6 +37,7 @@ void menu_foodScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &mainC
|
||||
if (charaData.hunger < 8) {
|
||||
charaData.weight++;
|
||||
charaData.hunger++;
|
||||
charaData.hungerCareMistakeTimer = charaData.initialStatsReductionTime;
|
||||
screenKey = FEEDING_SCREEN;
|
||||
submenuKey = FOOD_ICON;
|
||||
} else {
|
||||
@@ -48,6 +49,7 @@ void menu_foodScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &mainC
|
||||
if (charaData.strength < 8) {
|
||||
charaData.strength++;
|
||||
charaData.weight += 2;
|
||||
charaData.strengthCareMistakeTimer = charaData.initialStatsReductionTime;
|
||||
screenKey = FEEDING_SCREEN;
|
||||
submenuKey = PILL_ICON;
|
||||
} else {
|
||||
|
||||
@@ -9,7 +9,16 @@
|
||||
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) {
|
||||
if (charaData.sleepy && !charaData.asleep) {
|
||||
if (coldBoot) {
|
||||
screenKey = TITLE_SCREEN;
|
||||
return;
|
||||
} else if (!charaData.hatched && !charaData.hatching) {
|
||||
screenKey = EGG_EMPTY_SCREEN;
|
||||
return;
|
||||
} else if (!charaData.hatched && charaData.hatching) {
|
||||
screenKey = EGG_HATCH_SCREEN;
|
||||
return;
|
||||
} else if (charaData.sleepy && !charaData.asleep) {
|
||||
screenKey = SLEEPY_SCREEN;
|
||||
return;
|
||||
} else if ((charaData.sleepy && charaData.asleep) || charaData.asleep) {
|
||||
@@ -20,12 +29,12 @@ void menu_drawIdleScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &s
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
|
||||
switch (pressedButtons) {
|
||||
case 8:
|
||||
case K1_PRESSED:
|
||||
screenKey = MENU_SCREEN;
|
||||
menuKey = 0;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
case K2_PRESSED:
|
||||
screenKey = CLOCK_SCREEN;
|
||||
break;
|
||||
|
||||
|
||||
@@ -40,5 +40,9 @@ void menu_drawHappyScreen(
|
||||
TFT_eSprite &composite, 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_reloadEggs(uint8_t selectedEgg);
|
||||
void menu_drawDeathScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiBigSprite, struct SpriteData* uiSmallSprite);
|
||||
|
||||
#endif
|
||||
@@ -6,10 +6,9 @@
|
||||
|
||||
void menu_drawTitle(TFT_eSprite &composite, TFT_eSprite &bg) {
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
lastPressedButtonTime = esp_timer_get_time();
|
||||
|
||||
if (pressedButtons == 8 || pressedButtons == 4) {
|
||||
screenKey = CLOCK_EDIT_SCREEN;
|
||||
return;
|
||||
}
|
||||
|
||||
draw_drawBackground(composite, bg, 90, 90, 3);
|
||||
|
||||
Reference in New Issue
Block a user