00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef SDLFILESURFACES_H
00023 #define SDLFILESURFACES_H
00024
00025 #include "sdlsurfacecontainer.h"
00026 #include <list>
00027 #include "definitions.h"
00028
00029 using namespace std;
00030
00050 class DECLSPEC SdlFileSurfacesInfo
00051 {
00052 public:
00053 DECLSPEC SdlFileSurfacesInfo();
00061 DECLSPEC bool load( const char *fn );
00069 DECLSPEC bool save( const char *fn );
00070
00072 bool isLoaded() { return chInfoFile[0] != 0; }
00073
00078 DECLSPEC const char *getBitmapFN() const;
00083 Uint32 getTransparentColor() const { return cTransparent; }
00084
00092 DECLSPEC const SDL_Rect *getFirstRect();
00100 DECLSPEC const SDL_Rect *getNextRect();
00104 int numRects() { return lRects.size(); }
00105 private:
00106 char chBMPFile[256], chInfoFile[256];
00107 Uint32 cTransparent;
00108 list<SDL_Rect> lRects;
00109 list<SDL_Rect>::iterator rIter;
00110 };
00111
00126 class SdlFileSurfaces : public SdlSurfaceContainer
00127 {
00128 public:
00140 DECLSPEC SdlFileSurfaces( const char *fn, const char *name = 0, Uint32 flags = SDL_HWSURFACE );
00164 DECLSPEC SdlFileSurfaces( const char *fn, SDL_Rect rBegin, Uint32 num, Uint32 NumPerLine, bool byrow = true, const char *name = 0, Uint32 colorkey = CLR_INVALID, char *type = 0, Uint32 flags = SDL_HWSURFACE );
00165 virtual DECLSPEC ~SdlFileSurfaces();
00166
00167 protected:
00174 virtual DECLSPEC void onRefresh();
00175 private:
00176 SdlSurface *sysSurface;
00177 SDL_Rect rBegin;
00178 SdlFileSurfacesInfo data;
00179 bool bByRow;
00180 Uint32 nNumPerLine;
00181 };
00182
00183 #endif