#pragma once struct SDL_Surface; class CLodHandler; /* * CBitmapHandler.h, part of VCMI engine * * Authors: listed in file AUTHORS in main folder * * License: GNU General Public License v2.0 or later * Full text of license available in license.txt file, in main folder * */ enum Epcxformat {PCX8B, PCX24B}; /// Struct which stands for a simple rgba palette struct BMPPalette { ui8 R,G,B,F; }; /// Class which converts pcx to bmp images class CPCXConv { public: ui8 * pcx, *bmp; int pcxs, bmps; void fromFile(std::string path); void saveBMP(std::string path) const; void openPCX(char * PCX, int len); SDL_Surface * getSurface() const; //for standard H3 PCX //SDL_Surface * getSurfaceZ(); //for ZSoft PCX CPCXConv() //c-tor : pcx(NULL), bmp(NULL), pcxs(0), bmps(0) {} ~CPCXConv() //d-tor { if (pcxs) delete[] pcx; if (bmps) delete[] bmp; } }; namespace BitmapHandler { //Load file from specific LOD SDL_Surface * loadBitmapFromLod(CLodHandler *lod, std::string fname, bool setKey=true); //Load file from any LODs SDL_Surface * loadBitmap(std::string fname, bool setKey=true); };