1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2024-11-15 14:09:06 +00:00

SceneEditor: Add support for grid map dumping (in TGA format).

This allows reconstructing the map templates, which were never shipped with the game.
This commit is contained in:
fgenesis 2011-11-20 17:49:32 +01:00
parent 5c1169727c
commit 1ee532f39e
2 changed files with 30 additions and 0 deletions

View file

@ -501,6 +501,7 @@ public:
void checkForRebuild();
void createAquarian();
void dumpObs();
DebugButton *btnMenu;
protected:

View file

@ -707,6 +707,8 @@ void SceneEditor::init()
addAction(MakeFunctionEvent(SceneEditor, createAquarian), KEY_F, 0);
addAction(MakeFunctionEvent(SceneEditor, dumpObs), KEY_F8, 0);
/*
// OLD CRAP
@ -3908,5 +3910,32 @@ void SceneEditor::prevEntityType()
}
}
void SceneEditor::dumpObs()
{
TileVector tv;
const uint32 A = 0xFF000000;
#define COL(c) (((0x ## c)) | A)
const uint32 coltab[5] =
{
COL(FFFFFF),
COL(FFFFFF),
COL(000000),
COL(FFFFFF),
COL(FFFFFF),
};
unsigned char *data = new unsigned char[MAX_GRID * MAX_GRID * sizeof(uint32)];
uint32 *ptr = (uint32*)data;
for(tv.y = MAX_GRID - 1; ; --tv.y)
{
for(tv.x = 0; tv.x < MAX_GRID; ++tv.x)
*ptr++ = coltab[game->getGrid(tv)];
if(tv.y == 0)
break;
}
std::string outfn = dsq->getUserDataFolder() + "/griddump-" + game->sceneName + ".tga";
core->tgaSave(outfn.c_str(), MAX_GRID, MAX_GRID, 32, data);
dsq->screenMessage("Saved grid image to " + outfn);
}
#endif // AQUARIA_BUILD_SCENEEDITOR