X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGame.h;h=337b0bfe71f82fa6986559ef995872705a2ccde2;hb=54cbb28b51da68b2280068a41e7964f78dec6858;hp=7bc3e89f7d24bae2755d8676dc1823e2f7482a4d;hpb=f1f55db0495129376cff147ade264b4294f9bdc7;p=lugaru.git diff --git a/Source/Game.h b/Source/Game.h index 7bc3e89..337b0bf 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; @@ -90,13 +89,8 @@ class Game float selectedlong[100]; float offsetx[100]; float offsety[100]; - float movex[100]; - float movey[100]; - float transition; - int anim; int selected; int keyselect; - int loaddistrib; int indemo; bool won; @@ -118,13 +112,8 @@ class Game float rotation,rotation2; SkyBox skybox; bool cameramode; - bool cameratogglekeydown; - bool chattogglekeydown; int olddrawmode; int drawmode; - bool drawmodetogglekeydown; - bool explodetogglekeydown; - bool detailtogglekeydown; bool firstload; bool oldbutton; @@ -150,8 +139,6 @@ class Game int campaignchoosenext[50]; int campaignnumnext[50]; int campaignnextlevel[50][10]; - int campaignchoicesmade; - int campaignchoices[5000]; int campaignlocationx[50]; int campaignlocationy[50]; int campaignchoicenum; @@ -180,10 +167,6 @@ class Game XYZ cameraloc; float cameradist; - bool envtogglekeydown; - bool slomotogglekeydown; - bool texturesizetogglekeydown; - bool freezetogglekeydown; int drawtoggle; bool editorenabled; @@ -219,13 +202,9 @@ class Game bool displayblink; int displayselected; bool consolekeydown; - bool consoletogglekeydown; float consoleblinkdelay; bool consoleblink; int consoleselected; - //int togglekey[140]; - //float togglekeydelay[140]; - bool registernow; bool autocam; unsigned short crouchkey,jumpkey,forwardkey,chatkey,backkey,leftkey,rightkey,drawkey,throwkey,attackkey; @@ -233,21 +212,36 @@ 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 LoadCampaign(); void FadeLoadingScreen(float howmuch); void Dispose(); int DrawGLScene(StereoSide side); + void DrawMenu(); void DrawGL(); + //factored from Tick() -sf17k + void MenuTick(); + void doTutorial(); + void doDebugKeys(); + void doJumpReversals(); + void doAerialAcrobatics(); + void doAttacks(); + void doPlayerCollisions(); + void doAI(int i); + //end factored void Tick(); void TickOnce(); void TickOnceAfter(); void SetUpLighting(); void Loadlevel(int which); - void Loadlevel(char *name); + void Loadlevel(const char *name); void Setenvironment(int which); GLvoid ReSizeGLScene(float fov, float near); int findPathDist(int start,int end); @@ -297,11 +291,37 @@ class Game void inputText(char* str, int* charselected, int* nb_chars); void flash(); bool waiting; - bool mainmenutogglekeydown; //int mainmenu; 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))