X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;ds=sidebyside;f=Source%2FGame.h;h=56b65c257773b5510c9ec39ad6f4db4a3300398b;hb=bbf8873b80baf3cb468ac12b3f62b0938320fef1;hp=92a6945f7ad290109030dbee4d474976881b7fbd;hpb=6bd4d8e827e8e47b78db4a1f236cba2eed7032b4;p=lugaru.git diff --git a/Source/Game.h b/Source/Game.h index 92a6945..56b65c2 100644 --- a/Source/Game.h +++ b/Source/Game.h @@ -61,13 +61,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. extern GLuint rabbittexture; +struct TextureInfo; + class Game { public: - typedef std::map TextureList; - typedef std::map GLTextureList; - typedef TextureList::iterator TexIter; - static TextureList textures; + static std::vector textures; GLuint terraintexture; GLuint terraintexture2; @@ -220,9 +219,12 @@ class Game static void LoadTexture(const char *fileName, GLuint *textureid,int mipmap, bool hasalpha); static void LoadTextureSave(const char *fileName, GLuint *textureid,int mipmap,GLubyte *array, int *skinsize); + static void LoadTextureData(const char *fileName, GLuint *textureid,int mipmap, bool hasalpha); + static void LoadTextureSaveData(const char *fileName, GLuint *textureid,int mipmap,GLubyte *array, int *skinsize, bool reload); void LoadSave(const char *fileName, GLuint *textureid,bool mipmap,GLubyte *array, int *skinsize); - bool AddClothes(const char *fileName, GLuint *textureid,bool mipmap,GLubyte *array, int *skinsize); + bool AddClothes(const char *fileName, GLubyte *array); void InitGame(); + void LoadScreenTexture(); void LoadStuff(); void LoadingScreen(); void FadeLoadingScreen(float howmuch); @@ -298,6 +300,33 @@ class Game Account* accountactive; }; +//keeps track of which textures are loaded +//TODO: delete them properly +struct TextureInfo{ + bool isLoaded; + bool isSkin; + const char* fileName; + GLuint* ptextureid; + int mipmap; + bool hasalpha; + GLubyte* array; + int* skinsize; + + void load(){ + if(isSkin) + Game::LoadTextureSaveData(fileName,ptextureid,mipmap,array,skinsize,isLoaded); + else + Game::LoadTextureData(fileName,ptextureid,mipmap,hasalpha); + isLoaded=true; + } + TextureInfo(const char *_fileName, GLuint *_ptextureid,int _mipmap, bool _hasalpha): + isLoaded(false), isSkin(false), array(NULL), skinsize(NULL), + fileName(_fileName), ptextureid(_ptextureid), mipmap(_mipmap), hasalpha(_hasalpha) { } + TextureInfo(const char *_fileName, GLuint *_ptextureid, int _mipmap, GLubyte *_array, int *_skinsize): + isLoaded(false), isSkin(true), hasalpha(false), + fileName(_fileName), ptextureid(_ptextureid), mipmap(_mipmap), array(_array), skinsize(_skinsize) { } +}; + #ifndef __forceinline # ifdef __GNUC__ # define __forceinline inline __attribute__((always_inline))