forked from teamnwah/openmw-tes3coop
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
893 B
C++
41 lines
893 B
C++
10 years ago
|
#include "converter.hpp"
|
||
|
|
||
|
#include <OgreImage.h>
|
||
|
|
||
|
namespace
|
||
|
{
|
||
|
|
||
|
void convertImage(char* data, int size, int width, int height, Ogre::PixelFormat pf, const std::string& out)
|
||
|
{
|
||
|
Ogre::Image screenshot;
|
||
|
Ogre::DataStreamPtr stream (new Ogre::MemoryDataStream(data, size));
|
||
|
screenshot.loadRawData(stream, width, height, 1, pf);
|
||
|
screenshot.save(out);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
namespace ESSImport
|
||
|
{
|
||
|
|
||
|
|
||
|
struct MAPH
|
||
|
{
|
||
|
unsigned int size;
|
||
|
unsigned int value;
|
||
|
};
|
||
|
|
||
|
void ConvertFMAP::read(ESM::ESMReader &esm)
|
||
|
{
|
||
|
MAPH maph;
|
||
|
esm.getHNT(maph, "MAPH");
|
||
|
std::vector<char> data;
|
||
|
esm.getSubNameIs("MAPD");
|
||
|
esm.getSubHeader();
|
||
|
data.resize(esm.getSubSize());
|
||
|
esm.getExact(&data[0], data.size());
|
||
|
convertImage(&data[0], data.size(), maph.size, maph.size, Ogre::PF_BYTE_RGB, "map.tga");
|
||
|
}
|
||
|
|
||
|
}
|