Compare commits

...

2 Commits

4 changed files with 21 additions and 7 deletions

View File

@@ -9,9 +9,20 @@ namespace textfile
int fsize = 0;
int p = 0;
const int toInt(std::string token)
{
int value = 0;
for (std::size_t i=0; i<token.length(); ++i)
{
if (token[i]<48 || token[i]>57) return 0;
value = (value*10) + (token[i]-48);
}
return value;
}
const bool open(std::string filename)
{
buffer = file::getFileBuffer(filename.c_str());
buffer = file::getFileBuffer(filename.c_str(), &fsize);
p = 0;
return true;
@@ -52,6 +63,6 @@ namespace textfile
const int getIntValue(std::string token)
{
return std::stoi(getStringValue(token));
return toInt(getStringValue(token));
}
}

View File

@@ -4,6 +4,8 @@
namespace textfile
{
const int toInt(std::string token);
const bool open(std::string filename);
void close();

View File

@@ -52,6 +52,7 @@ namespace gamestate
draw::setSource(fondo);
draw::draw(0, 0, 320, 200, 0, 0);
draw::setTrans(0);
draw::setSource(cursor);
draw::draw(input::mouseX(), input::mouseY(), cursor->w, cursor->h, 0, 0);

View File

@@ -42,7 +42,7 @@ namespace mapa
do {
textfile::searchToken("LEVEL");
} while (std::stoi(textfile::getNextToken()) != game::getConfig("fase"));
} while (textfile::toInt(textfile::getNextToken()) != game::getConfig("fase"));
const int tileset = textfile::getIntValue("tileset");
arounders::orientacio_inicial = textfile::getIntValue("orientacio");
@@ -58,10 +58,10 @@ namespace mapa
accions::corda = textfile::getIntValue("corda");
ini_x = textfile::getIntValue("inici");
ini_y = std::stoi(textfile::getNextToken());
ini_y = textfile::toInt(textfile::getNextToken());
fin_x = textfile::getIntValue("final");
fin_y = std::stoi(textfile::getNextToken());
fin_y = textfile::toInt(textfile::getNextToken());
//int tilemap[200];
//for (int y=0; y<10; ++y) for (int x=0; x<10; ++x) fscanf(f, "%i", &tilemap[x+y*20]);
@@ -76,13 +76,13 @@ namespace mapa
for (int y=0; y<10; ++y)
for (int x=0; x<10; ++x)
{
int tile; fscanf(f, "%i", &tile);
int tile = textfile::toInt(textfile::getNextToken());
if (tile > 0) draw::draw(x*16, y*16, 16, 16, (tile-1)*16, tileset*16);
}
draw::freeSurface(tiles);
textfile::fclose();
textfile::close();
draw::surface *marcador = draw::loadSurface("marcador.gif");
draw::setSource(marcador);