]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Game.h
removed unused menu animation code
[lugaru.git] / Source / Game.h
index 6dd0836ee70da4b6b4bd8f35272711db487b3446..337b0bfe71f82fa6986559ef995872705a2ccde2 100644 (file)
@@ -46,7 +46,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #include "Models.h"
 #include "Lights.h"
 #include "Person.h"
-#include "Constants.h"
 #include "Sprite.h"
 //#include <agl.h>
 #include "Text.h"
@@ -58,16 +57,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #include "gamegl.h"
 #include "Stereo.h"
 #include "Account.h"
+#include "Sounds.h"
 
 extern GLuint rabbittexture;
 
+struct TextureInfo;
+
 class Game
 {
        public:
-               typedef std::map<std::string, GLuint> TextureList;
-               typedef std::map<GLuint, std::string> GLTextureList;
-               typedef TextureList::iterator TexIter;
-               static TextureList textures;
+               static std::vector<TextureInfo> 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,22 +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 LoadSounds();
+               void Loadlevel(const char *name);
                void Setenvironment(int which);
                GLvoid ReSizeGLScene(float fov, float near);
                int findPathDist(int start,int end);
@@ -298,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))
@@ -319,4 +338,47 @@ extern "C" { void UndefinedSymbolToExposeStubbedCode(void); }
 #define STUBBED(x) { static bool seen = false; if (!seen) { seen = true; fprintf(stderr, "STUBBED: %s at %s:%d\n", x, __FILE__, __LINE__); } }
 //#define STUBBED(x)
 
+extern int numplayers;
+
+extern int numdialogues;
+const int max_dialogues = 20;
+const int max_dialoguelength = 20;
+extern int numdialogueboxes[max_dialogues];
+extern int dialoguetype[max_dialogues];
+extern int dialogueboxlocation[max_dialogues][max_dialoguelength];
+extern float dialogueboxcolor[max_dialogues][max_dialoguelength][3];
+extern int dialogueboxsound[max_dialogues][max_dialoguelength];
+extern char dialoguetext[max_dialogues][max_dialoguelength][128];
+extern char dialoguename[max_dialogues][max_dialoguelength][64];
+extern XYZ dialoguecamera[max_dialogues][max_dialoguelength];
+extern XYZ participantlocation[max_dialogues][10];
+extern int participantfocus[max_dialogues][max_dialoguelength];
+extern int participantaction[max_dialogues][max_dialoguelength];
+extern float participantrotation[max_dialogues][10];
+extern XYZ participantfacing[max_dialogues][max_dialoguelength][10];
+extern float dialoguecamerarotation[max_dialogues][max_dialoguelength];
+extern float dialoguecamerarotation2[max_dialogues][max_dialoguelength];
+extern int indialogue;
+extern int whichdialogue;
+extern int directing;
+extern float dialoguetime;
+extern int dialoguegonethrough[20];
+
+enum maptypes {
+  mapkilleveryone, mapgosomewhere,
+  mapkillsomeone, mapkillmost // These two are unused
+};
+
+enum pathtypes {wpkeepwalking, wppause};
+
+static const char *pathtypenames[] = {"keepwalking", "pause"};
+
+enum editortypes {typeactive, typesitting, typesittingwall, typesleeping,
+                 typedead1, typedead2, typedead3, typedead4};
+
+static const char *editortypenames[] = {
+  "active", "sitting", "sitting wall", "sleeping",
+  "dead1", "dead2", "dead3", "dead4"
+};
+
 #endif