- Reestructurat el codi dels gamestates per a que siga mes llegible

This commit is contained in:
2023-10-13 15:14:04 +02:00
parent ece24d4562
commit 6140e13db6
3 changed files with 129 additions and 112 deletions

View File

@@ -22,37 +22,33 @@ namespace gamestate
FILE *sequence_file = nullptr;
uint32_t wait_until = 0;
void drawPic(std::string filename)
{
draw::surface *pic = draw::loadSurface(filename, true);
draw::setSource(pic);
draw::draw(0, 0, 320, 200, 0, 0);
draw::freeSurface(pic);
}
void drawPic(std::string filename);
void drawText(const int x, const int y, const uint8_t color, std::string text);
bool loop();
void drawText(const int x, const int y, const uint8_t color, std::string text)
void init()
{
draw::surface *pic = draw::loadSurface("fuente2.gif");
draw::setSource(pic);
draw::setTrans(0);
draw::setPaletteEntry(64, 255, 255, 255);
draw::setPaletteEntry(65, 255, 0, 0);
draw::setPaletteEntry(66, 0, 255, 0);
draw::setPaletteEntry(67, 0, 0, 255);
draw::setPaletteEntry(68, 0, 0, 0);
draw::swapcol(1, color+64);
draw::swapcol(2, 68);
const int len = text.length();
for (int i=0;i<len;++i)
{
char chr = text[i];
draw::draw(x+i*7, y, 6, 6, (int(chr)-32)*7, 0);
}
draw::setTrans(255);
draw::restorecol(1);
draw::restorecol(2);
draw::freeSurface(pic);
draw::render();
const int fase = game::getConfig("fase");
std::string filename;
switch (fase)
{
case -1: filename = "seqIN.txt"; break;
case 0: filename = "seq00.txt"; break;
case 5: filename = "seq05.txt"; break;
case 10: filename = "seq10.txt"; break;
case 15: filename = "seq15.txt"; break;
case 20: filename = "seq20.txt"; break;
case 25: filename = "seq25.txt"; break;
case 30: filename = "seq30.txt"; break;
}
int filesize;
sequence_file = file::getFilePointer(filename, filesize);
game::setState(&gamestate::sequence::loop);
}
bool loop()
@@ -128,28 +124,38 @@ namespace gamestate
return true;
}
void init()
void drawPic(std::string filename)
{
draw::setTrans(255);
const int fase = game::getConfig("fase");
std::string filename;
switch (fase)
{
case -1: filename = "seqIN.txt"; break;
case 0: filename = "seq00.txt"; break;
case 5: filename = "seq05.txt"; break;
case 10: filename = "seq10.txt"; break;
case 15: filename = "seq15.txt"; break;
case 20: filename = "seq20.txt"; break;
case 25: filename = "seq25.txt"; break;
case 30: filename = "seq30.txt"; break;
}
int filesize;
sequence_file = file::getFilePointer(filename, filesize);
game::setState(&gamestate::sequence::loop);
draw::surface *pic = draw::loadSurface(filename, true);
draw::setSource(pic);
draw::draw(0, 0, 320, 200, 0, 0);
draw::freeSurface(pic);
}
void drawText(const int x, const int y, const uint8_t color, std::string text)
{
draw::surface *pic = draw::loadSurface("fuente2.gif");
draw::setSource(pic);
draw::setTrans(0);
draw::setPaletteEntry(64, 255, 255, 255);
draw::setPaletteEntry(65, 255, 0, 0);
draw::setPaletteEntry(66, 0, 255, 0);
draw::setPaletteEntry(67, 0, 0, 255);
draw::setPaletteEntry(68, 0, 0, 0);
draw::swapcol(1, color+64);
draw::swapcol(2, 68);
const int len = text.length();
for (int i=0;i<len;++i)
{
char chr = text[i];
draw::draw(x+i*7, y, 6, 6, (int(chr)-32)*7, 0);
}
draw::setTrans(255);
draw::restorecol(1);
draw::restorecol(2);
draw::freeSurface(pic);
draw::render();
}
}
}