Files
thepool/source/m_intro.cpp
Raimon Zamora 0ccd8a570a - [NEW] Sempre es pot navegar pels menus amb cursors, RETURN i ESCAPE
- [NEW] El gamepad es configura amb la info del gamescontrollerdb.txt per defecte
- [NEW] El botó de START en el gamepad funciona com el ESCAPE del teclat
- [FIX] La música ingame continuava estant mal
- [FIX] Si la música està desactivada que no sone la del logo
2024-10-06 19:23:06 +02:00

171 lines
7.4 KiB
C++

#include "m_intro.h"
#include "jdraw.h"
#include "jinput.h"
#include "jaudio.h"
#include "controller.h"
#include "config.h"
#include <SDL2/SDL.h>
#include "actor.h"
namespace modules
{
namespace intro
{
int stage = 0;
uint32_t time = 0;
void init()
{
time = SDL_GetTicks();
draw::restorecol(2);
draw::cls(2);
draw::swapcol(1, 9);
draw::setSource(draw::getSurface("intro1.gif"));
draw::draw(96, 28, 128, 96, 0, 0);
draw::print2("AH!", 19, 17, WHITE, FONT_ZOOM_NONE);
draw::print2("QUE BON DIA FA!", 13, 19, WHITE, FONT_ZOOM_NONE);
draw::render();
if (audio::getCurrentMusic() != "mus_menu.ogg") audio::playMusic("mus_menu.ogg");
}
const bool shouldGoToNext()
{
return (SDL_GetTicks()-time > (stage==8?10000:5000)) ||
(controller::pressed(KEY_JUMP)) || (controller::pressed(KEY_PICK)) ||
(input::keyPressed(SDL_SCANCODE_SPACE)) || (input::keyPressed(SDL_SCANCODE_RETURN));
}
void drawActorAt(const char* name, const int x, const int y)
{
draw::swapcol(1,PURPLE);
actor::actor_t *act = actor::createFromTemplate(name); act->flags &= ~FLAG_SPECIAL;
actor::drawAt(act, x, y); actor::remove(act);
}
bool loop()
{
if (controller::pressed(KEY_MENU)) return false;
if (shouldGoToNext())
{
time = SDL_GetTicks();
stage++;
if (stage == 9) return false;
switch (stage)
{
case 1:
draw::cls(2);
draw::swapcol(1, 9);
draw::setSource(draw::getSurface("intro2.gif"));
draw::draw(96, 28, 128, 96, 0, 0);
draw::print2("ME ANE A ESCABUSSARME", 10, 17, WHITE, FONT_ZOOM_NONE);
draw::print2("EN LA NOVA PISCINA!", 11, 19, WHITE, FONT_ZOOM_NONE);
//draw::render();
break;
case 2:
draw::cls(2);
draw::swapcol(1, 8);
draw::setSource(draw::getSurface("intro3.gif"));
draw::draw(96, 28, 128, 96, 0, 0);
draw::print2("PERO QUE...??", 14, 17, WHITE, FONT_ZOOM_NONE);
//draw::render();
break;
case 3:
draw::cls(2);
draw::swapcol(1, 8);
draw::setSource(draw::getSurface("intro3.gif"));
draw::draw(96, 28, 128, 96, 0, 0);
draw::print2("ESTOS PAIASOS ENCARA", 10, 17, WHITE, FONT_ZOOM_NONE);
draw::print2("NO L'HAN ACABAT!", 12, 19, WHITE, FONT_ZOOM_NONE);
//draw::render();
break;
case 4:
draw::cls(2);
draw::swapcol(1, 7);
draw::setSource(draw::getSurface("intro4.gif"));
draw::draw(96, 28, 128, 96, 0, 0);
draw::print2("TINDRE QUE TROBAR JO LES", 8, 17, WHITE, FONT_ZOOM_NONE);
draw::print2("PECES DE LA DEPURADORA", 9, 19, WHITE, FONT_ZOOM_NONE);
//draw::render();
break;
case 5:
draw::cls(2);
draw::swapcol(1, 9);
draw::setSource(draw::getSurface("intro1.gif"));
draw::draw(96, 28, 128, 96, 0, 0);
draw::print2("I ARA ON ESTAN LES ", 11, 17, WHITE, FONT_ZOOM_NONE);
draw::print2("MEUES COSES...?", 12, 19, WHITE, FONT_ZOOM_NONE);
//draw::render();
break;
case 6:
draw::cls(2);
draw::swapcol(1, 10);
draw::setSource(draw::getSurface("intro5.gif"));
draw::draw(96, 28, 128, 96, 0, 0);
draw::print2("ELS GATS ME LES HAN", 11, 17, WHITE, FONT_ZOOM_NONE);
draw::print2("REPARTIT PER TOTA LA CASA", 8, 19, WHITE, FONT_ZOOM_NONE);
//draw::render();
break;
case 7:
draw::cls(2);
draw::swapcol(1, 10);
draw::setSource(draw::getSurface("intro5.gif"));
draw::draw(96, 28, 128, 96, 0, 0);
draw::print2("ESPERE TROBARME ALGUN", 9, 17, WHITE, FONT_ZOOM_NONE);
draw::print2("CAFE PEL CAMI...", 12, 19, WHITE, FONT_ZOOM_NONE);
//draw::render();
break;
case 8:
actor::templates::load();
draw::cls(2);
draw::print2("HABILITATS:", 4, 3, YELLOW, FONT_ZOOM_VERTICAL);
draw::print2("PARTS DE LA", 24, 3, YELLOW, FONT_ZOOM_VERTICAL);
draw::print2("DEPURADORA:", 24, 6, YELLOW, FONT_ZOOM_VERTICAL);
draw::print2("CAFE:", 6, 24, YELLOW, FONT_ZOOM_VERTICAL);
draw::print2("SABATES", 7, 7, WHITE, FONT_ZOOM_NONE);
draw::print2("GUANTS", 7, 11, WHITE, FONT_ZOOM_NONE);
draw::print2("PANTALONS", 7, 15, WHITE, FONT_ZOOM_NONE);
draw::print2("MOTXILA", 7, 19, WHITE, FONT_ZOOM_NONE);
draw::print("PER A PODER BOTAR", 57, 51+16, TEAL, PAPER);
draw::print("PER A ESPENTAR OBJECTES", 57, 83+16, TEAL, PAPER);
draw::print("PER A AGAFAR UN OBJECTE", 57, 115+16, TEAL, PAPER);
draw::print("PER A ARREPLEGAR LES PARTS", 57, 147+16, TEAL, PAPER);
draw::print("BOT LLARG, SUPERVELOCITAT,", 47, 211, TEAL, PAPER);
draw::print("IMMUNITAT, VIDA EXTRA", 47, 218, TEAL, PAPER);
drawActorAt("S-SHOES", 18, 38+16);
drawActorAt("S-GLOVES", 20, 71+16);
drawActorAt("S-PANTS", 20, 101+16);
drawActorAt("S-BAG", 20, 131+16);
drawActorAt("P-FILTER", 200, 80);
drawActorAt("P-PIPE", 250, 80);
drawActorAt("P-ELBOW", 200, 120);
drawActorAt("P-SALT", 250, 120);
drawActorAt("P-TIMER", 200, 160);
drawActorAt("P-PUMP", 250, 160);
drawActorAt("BOOSTER", 20, 190);
/*draw::swapcol(1, 10);
draw::setSource(draw::getSurface("intro5.gif"));
draw::draw(96, 28, 128, 96, 0, 0);
draw::print2("ESPERE TROBARME ALGUN", 9, 17, WHITE, FONT_ZOOM_NONE);
draw::print2("CAFE PEL CAMI...", 12, 19, WHITE, FONT_ZOOM_NONE);*/
break;
}
}
draw::render();
return true;
}
}
}