mirror of
https://github.com/nacabaro/nacapet.git
synced 2026-09-30 23:21:37 +00:00
Evolucion funciona
Chupate esa, compilador de C
This commit is contained in:
@@ -0,0 +1,156 @@
|
||||
#include "menu.h"
|
||||
#include "draw/draw.h"
|
||||
#include "display/display.h"
|
||||
#include "defs/screen_defs.h"
|
||||
#include "vpet/evolution/evolution.h"
|
||||
|
||||
struct SpriteData* checkerboardPattern;
|
||||
|
||||
void menu_createCheckerboard() {
|
||||
checkerboardPattern = (SpriteData*) malloc(sizeof(SpriteData));
|
||||
checkerboardPattern->spriteHeight = 1;
|
||||
checkerboardPattern->spriteWidth = 34;
|
||||
checkerboardPattern->spriteNumber = 1;
|
||||
checkerboardPattern->spriteData = (uint16_t**) malloc(sizeof(uint16_t*) * checkerboardPattern->spriteNumber);
|
||||
checkerboardPattern->spriteData[0] = (uint16_t*) malloc(sizeof(uint16_t) * checkerboardPattern->spriteWidth);
|
||||
|
||||
for (int i = 0; i < checkerboardPattern->spriteWidth; i++) {
|
||||
if (i % 2 == 0) {
|
||||
checkerboardPattern->spriteData[0][i] = TFT_BLACK;
|
||||
} else {
|
||||
checkerboardPattern->spriteData[0][i] = TFT_TRANSPARENT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void menu_freeCheckerboard() {
|
||||
free(checkerboardPattern->spriteData[0]);
|
||||
free(checkerboardPattern->spriteData);
|
||||
free(checkerboardPattern);
|
||||
|
||||
}
|
||||
|
||||
// Don't worry, I hate this too
|
||||
|
||||
void menu_evolutionScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* mainCharacterSprites) {
|
||||
menu_createCheckerboard();
|
||||
TFT_eSprite checkerboard = TFT_eSprite(&tft);
|
||||
|
||||
bool checkerboardShift = false;
|
||||
|
||||
tft_clearBuffer(sprite, TFT_TRANSPARENT);
|
||||
|
||||
for (int i = 0; i < 5;) {
|
||||
uint64_t currentTime = esp_timer_get_time();
|
||||
|
||||
if (currentTime - lastUpdateTime > 500000) {
|
||||
tone(SPK_PIN, 4100, 50);
|
||||
tone(SPK_PIN, 3500, 50);
|
||||
|
||||
draw_drawBackground(bg, 90, 90, 3);
|
||||
draw_drawSprite(sprite, 72 + ((i % 2 == 0) * 6), 72, mainCharacterSprites, 6, 6);
|
||||
|
||||
tft_drawBuffer();
|
||||
|
||||
i++;
|
||||
lastUpdateTime = currentTime;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
draw_drawBackground(bg, 90, 90, 3);
|
||||
draw_drawSprite(sprite, 72, 72, mainCharacterSprites, 7, 6);
|
||||
|
||||
tft_clearBuffer(sprite, TFT_TRANSPARENT);
|
||||
|
||||
for (int i = 0; i < 16;) {
|
||||
uint64_t currentTime = esp_timer_get_time();
|
||||
if (currentTime - lastUpdateTime > 100000) {
|
||||
uint8_t startYPos = 72 + (i * 6);
|
||||
|
||||
tft_drawRectangle(18, startYPos, 204, 6, TFT_RED);
|
||||
|
||||
draw_drawSprite(checkerboard, 18, startYPos, checkerboardPattern, 0, 6, checkerboardShift);
|
||||
|
||||
tft_drawBuffer();
|
||||
|
||||
checkerboardShift = !checkerboardShift;
|
||||
|
||||
i++;
|
||||
lastUpdateTime = currentTime;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 16;) {
|
||||
uint64_t currentTime = esp_timer_get_time();
|
||||
if (currentTime - lastUpdateTime > 100000) {
|
||||
uint8_t startYPos = 72 + (i * 6);
|
||||
|
||||
tft_drawRectangle(18, startYPos, 204, 6, TFT_BLACK);
|
||||
|
||||
tft_drawBuffer();
|
||||
|
||||
checkerboardShift = !checkerboardShift;
|
||||
|
||||
i++;
|
||||
lastUpdateTime = currentTime;
|
||||
}
|
||||
}
|
||||
|
||||
change_onChangeComplete();
|
||||
|
||||
for (int i = 15; i >= 0;) {
|
||||
uint64_t currentTime = esp_timer_get_time();
|
||||
if (currentTime - lastUpdateTime > 100000) {
|
||||
uint8_t startYPos = 72 + (i * 6);
|
||||
|
||||
tft_drawRectangle(18, startYPos, 204, 6, TFT_GREEN);
|
||||
draw_drawSprite(checkerboard, 18, startYPos, checkerboardPattern, 0, 6, checkerboardShift);
|
||||
|
||||
tft_drawBuffer();
|
||||
|
||||
checkerboardShift = !checkerboardShift;
|
||||
|
||||
i--;
|
||||
lastUpdateTime = currentTime;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 15; i >= 0;) {
|
||||
uint64_t currentTime = esp_timer_get_time();
|
||||
if (currentTime - lastUpdateTime > 100000) {
|
||||
draw_drawBackground(bg, 90, 90, 3);
|
||||
draw_drawSprite(sprite, 72, 72, mainCharacterSprites, 7, 6);
|
||||
|
||||
uint8_t rectHeight = (6 * i);
|
||||
|
||||
tft_drawRectangle(18, 72, 204, rectHeight, TFT_GREEN);
|
||||
|
||||
for (int j = 0; j < i; j++) {
|
||||
uint8_t rectYPos = 72 + (6 * j);
|
||||
|
||||
draw_drawSprite(checkerboard, 18, rectYPos, checkerboardPattern, 0, 6, checkerboardShift);
|
||||
|
||||
checkerboardShift = !checkerboardShift;
|
||||
}
|
||||
|
||||
tft_drawBuffer();
|
||||
i--;
|
||||
lastUpdateTime = currentTime;
|
||||
}
|
||||
}
|
||||
|
||||
tone(SPK_PIN, 2100, 100);
|
||||
tone(SPK_PIN, 3500, 100);
|
||||
tone(SPK_PIN, 4100, 100);
|
||||
tone(SPK_PIN, 4650, 200);
|
||||
|
||||
|
||||
lastPressedButtonTime = esp_timer_get_time();
|
||||
|
||||
menu_freeCheckerboard();
|
||||
|
||||
pauseLoop = false;
|
||||
screenKey = IDLE_SCREEN;
|
||||
lastUpdateTime = 0; // Un pequeño empujoncito
|
||||
}
|
||||
@@ -3,7 +3,6 @@
|
||||
#include "draw/draw.h"
|
||||
#include "display/display.h"
|
||||
#include "buttons/buttons.h"
|
||||
#include "vpet/vpet.h"
|
||||
#include "defs/screen_defs.h"
|
||||
|
||||
void menu_drawClock(TFT_eSprite &bg) {
|
||||
|
||||
@@ -6,19 +6,14 @@
|
||||
#include "defs/sprite_data.h"
|
||||
#include "defs/chara_data.h"
|
||||
#include "animations/animations.h"
|
||||
#include "vpet/vpet.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 frameCounter = 0;
|
||||
|
||||
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case K3_PRESSED:
|
||||
case K1_PRESSED:
|
||||
break;
|
||||
|
||||
switch (pressedButtons) {
|
||||
case K2_PRESSED:
|
||||
screenKey = CLOCK_SCREEN;
|
||||
break;
|
||||
@@ -51,6 +46,7 @@ void menu_eggHatchScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData
|
||||
}
|
||||
|
||||
draw_drawBackground(bg, 90, 90, 3);
|
||||
|
||||
draw_drawSpriteCentered(sprite, ¤tEgg->eggSprite, 2, 6);
|
||||
|
||||
tft_drawBuffer();
|
||||
@@ -59,11 +55,6 @@ void menu_eggHatchScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData
|
||||
|
||||
lines_onHatchComplete();
|
||||
|
||||
vpet_computeCallLight();
|
||||
|
||||
interruptKey = CARE_MISTAKE_SCREEN;
|
||||
screenKey = TIMER_FINISHED_SCREEN;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#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"
|
||||
#include "vpet/vpet/vpet.h"
|
||||
|
||||
|
||||
void menu_lineSwitcher(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiSmallSprite) {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "draw/draw.h"
|
||||
#include "buttons/buttons.h"
|
||||
#include "defs/chara_data.h"
|
||||
#include "vpet/vpet.h"
|
||||
#include "vpet/vpet/vpet.h"
|
||||
|
||||
void menu_foodScreen(TFT_eSprite &bg, TFT_eSprite &mainChara, struct SpriteData* spriteData) {
|
||||
if (charaData.sleepy) {
|
||||
|
||||
@@ -44,6 +44,7 @@ void menu_lineSwitcher(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData*
|
||||
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 &bg, TFT_eSprite &sprite, struct SpriteData* uiBigSprite, struct SpriteData* uiSmallSprite);
|
||||
void menu_evolutionScreen(TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* mainCharacterSprites);
|
||||
|
||||
void menu_sleepScreen_sleepAction();
|
||||
void menu_sleepScreen_recalculateSleep();
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
#include "defs/sprite_data.h"
|
||||
#include "defs/chara_data.h"
|
||||
#include "buttons/buttons.h"
|
||||
#include "vpet/vpet.h"
|
||||
#include "vpet/vpet/vpet.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
const int textXPos = 10;
|
||||
|
||||
Reference in New Issue
Block a user