mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-24 22:14:36 +02:00
1380a7fd34
* Fixed several memory leaks * Added support for player colors in CMessage (still need some work) * Moved declarations of CPreGame buttons to CPreGame.h * started making player interface (new button classes etc)
74 lines
3.4 KiB
C++
74 lines
3.4 KiB
C++
#ifndef CDEFHANDLER_H
|
|
#define CDEFHANDLER_H
|
|
|
|
#include "SDL.h"
|
|
#include "CSemiDefHandler.h"
|
|
|
|
class CDefEssential;
|
|
|
|
struct BMPHeader
|
|
{
|
|
int fullSize, _h1, _h2, _h3, _c1, _c2, _c3, _c4, x, y,
|
|
dataSize1, dataSize2; //DataSize=X*Y+2*Y
|
|
unsigned char _c5[8];
|
|
void print(std::ostream & out);
|
|
BMPHeader(){_h1=_h2=0;for(int i=0;i<8;i++)_c5[i]=0;};
|
|
};/*
|
|
struct DEFHeader
|
|
{
|
|
int type, width, height, groups;
|
|
unsigned char palette[767];
|
|
};
|
|
struct DEFGroup
|
|
{
|
|
int ID, items, unknown1, unknown2;
|
|
};*/
|
|
|
|
struct BMPPalette
|
|
{
|
|
unsigned char R,G,B,F;
|
|
};
|
|
|
|
class CDefHandler
|
|
{
|
|
private:
|
|
int totalEntries, DEFType, totalBlocks, fullWidth, fullHeight;
|
|
unsigned char fbuffer[800];
|
|
bool allowRepaint;
|
|
int length;
|
|
unsigned char * FDef;
|
|
BMPPalette palette[256];
|
|
unsigned int * RWEntries;
|
|
int * RLEntries;
|
|
struct SEntry
|
|
{
|
|
std::string name;
|
|
int offset;
|
|
int group;
|
|
} ;
|
|
std::vector<SEntry> SEntries ;
|
|
char id[2];
|
|
|
|
public:
|
|
std::string defName, curDir;
|
|
std::vector<Cimage> ourImages;
|
|
bool alphaTransformed;
|
|
|
|
~CDefHandler();
|
|
static void print (std::ostream & stream, int nr, int bytcon);
|
|
int readNormalNr (int pos, int bytCon, unsigned char * str=NULL, bool cyclic=false);
|
|
static unsigned char * CDefHandler::writeNormalNr (int nr, int bytCon);
|
|
SDL_Surface * getSprite (int SIndex); //zapisuje klastke o zadanym numerze do "testtt.bmp"
|
|
void openDef(std::string name);
|
|
void expand(unsigned char N,unsigned char & BL, unsigned char & BR);
|
|
void openFromMemory(unsigned char * table, int size, std::string name);
|
|
CDefEssential * essentialize();
|
|
};
|
|
|
|
class CDefEssential //DefHandler with images only
|
|
{
|
|
public:
|
|
std::vector<Cimage> ourImages;
|
|
};
|
|
|
|
#endif // CDEFHANDLER_H
|