]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Game.h
cleanup, renamed rotations to yaw/pitch
[lugaru.git] / Source / Game.h
index 32d14890b9f1b2f79fe3a0bbfca12f18291904e4..ec30c86ae7a00df3267cbe7494830cd63aaa640c 100644 (file)
@@ -61,269 +61,127 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #define NB_CAMPAIGN_MENU_ITEM 7
 
-extern GLuint rabbittexture;
-
-struct TextureInfo;
-
-class Game
-{
-       public:
-               static std::vector<TextureInfo> textures;
-
-               GLuint terraintexture;
-               GLuint terraintexture2;
-               GLuint terraintexture3;
-               GLuint screentexture;
-               GLuint screentexture2;
-               GLuint logotexture;
-               GLuint loadscreentexture;
-               GLuint Maparrowtexture;
-               GLuint Mapboxtexture;
-               GLuint Mapcircletexture;
-               GLuint cursortexture;
-               GLuint Mainmenuitems[10];
-
-               int nummenuitems;
-               int startx[100];
-               int starty[100];
-               int endx[100];
-               int endy[100];
-               float selectedlong[100];
-               float offsetx[100];
-               float offsety[100];
-               int selected;
-               int keyselect;
-               int indemo;
-
-               bool won;
-
-               bool entername;
-
-               char menustring[100][256];
-               char registrationname[256];
-               float registrationnumber;
-
-               int newdetail;
-               int newscreenwidth;
-               int newscreenheight;
-
-               bool gameon;
-               float deltah,deltav;
-               int mousecoordh,mousecoordv;
-               int oldmousecoordh,oldmousecoordv;
-               float rotation,rotation2;
-               SkyBox skybox;
-               bool cameramode;
-               int olddrawmode;
-               int drawmode;
-               bool firstload;
-               bool oldbutton;
-
-               float leveltime;
-               float loadtime;
-
-               Model hawk;
-               XYZ hawkcoords;
-               XYZ realhawkcoords;
-               GLuint hawktexture;
-               float hawkrotation;
-               float hawkcalldelay;
-
-               Model eye;
-               Model iris;
-               Model cornea;
-
-               bool stealthloading;
-
-               int campaignnumlevels;
-               char campaignmapname[50][256];
-               char campaigndescription[50][256];
-               int campaignchoosenext[50];
-               int campaignnumnext[50]; // Set this to 0 on final level. As David said: he meant to add story branching, but he eventually hadn't. 
-               int campaignnextlevel[50][10];
-               int campaignlocationx[50];
-               int campaignlocationy[50];
-               int campaignchoicenum;
-               int campaignchoicewhich[10];
-               int whichchoice;
-
-               int numlevelspassed;
-               int levelorder[5000];
-               int levelvisible[50];
-               int levelhighlight[50];
-
-               bool minimap;
-
-               int musictype,oldmusictype,oldoldmusictype;
-               bool realthreat;
-
-               Model rabbit;
-               XYZ rabbitcoords;
-
-               XYZ mapcenter;
-               float mapradius;
-
-               Text text;
-               float fps;
-
-               XYZ cameraloc;
-               float cameradist;
-
-               int drawtoggle;
-
-               bool editorenabled;
-               int editortype;
-               float editorsize;
-               float editorrotation;
-               float editorrotation2;
-
-               float brightness;
-
-               int quit;
-               int tryquit;
-
-               XYZ pathpoint[30];
-               int numpathpoints;
-               int numpathpointconnect[30];
-               int pathpointconnect[30][30];
-               int pathpointselected;
-
-               int endgame;
-               bool scoreadded;
-               int numchallengelevels;
-
-               bool console;
-               int archiveselected;
-               char consoletext[15][256];
-               int consolechars[15];
-               bool chatting;
-               char displaytext[15][256];
-               int displaychars[15];
-               float displaytime[15];
-               float displayblinkdelay;
-               bool displayblink;
-               int displayselected;
-               bool consolekeydown;
-               float consoleblinkdelay;
-               bool consoleblink;
-               int consoleselected;
-               bool autocam;
-
-               unsigned short crouchkey,jumpkey,forwardkey,chatkey,backkey,leftkey,rightkey,drawkey,throwkey,attackkey;
-               bool oldattackkey;
-
-               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, GLubyte *array);
-               void InitGame();
-               void LoadScreenTexture();
-               void LoadStuff();
-               void LoadingScreen();
-               void LoadCampaign();
-               static std::vector<std::string> ListCampaigns();
-               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(const char *name);
-               void Setenvironment(int which);
-               GLvoid ReSizeGLScene(float fov, float near);
-               int findPathDist(int start,int end);
-               int checkcollide(XYZ startpoint, XYZ endpoint);
-               int checkcollide(XYZ startpoint, XYZ endpoint, int what);
-               int loading;
-               float talkdelay;
-               
-               void fireSound(int sound=fireendsound);
-               void setKeySelected();
-
-               int numboundaries;
-               XYZ boundary[360];
-
-               int whichlevel;
-               int oldenvironment;
-               int targetlevel;
-               float changedelay;
-
-               float musicvolume[4];
-               float oldmusicvolume[4];
-               int musicselected;
-               int change;
-               Game();
-               ~Game() {
-                       for(int i=0;i<10;i++){
-                               if(Mainmenuitems[i])glDeleteTextures( 1, &Mainmenuitems[i] );
-                       }
-                       glDeleteTextures( 1, &cursortexture );
-                       glDeleteTextures( 1, &Maparrowtexture );
-                       glDeleteTextures( 1, &Mapboxtexture );
-                       glDeleteTextures( 1, &Mapcircletexture );
-                       glDeleteTextures( 1, &terraintexture );
-                       glDeleteTextures( 1, &terraintexture2 );
-                       if(screentexture>0)glDeleteTextures( 1, &screentexture );
-                       if(screentexture2>0)glDeleteTextures( 1, &screentexture2 );
-                       glDeleteTextures( 1, &hawktexture );
-                       glDeleteTextures( 1, &logotexture );
-                       glDeleteTextures( 1, &loadscreentexture );
-
-                       Dispose();
-               }
-               bool isWaiting() { return waiting; };
-       private:
-               void setKeySelected_thread();
-               static int thread(void *data);
-               void inputText(char* str, int* charselected, int* nb_chars);
-               void flash();
-               bool waiting;
-               //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) { }
-};
+namespace Game {
+    extern GLuint terraintexture;
+    extern GLuint terraintexture2;
+    extern GLuint terraintexture3;
+    extern GLuint screentexture;
+    extern GLuint screentexture2;
+    extern GLuint logotexture;
+    extern GLuint loadscreentexture;
+    extern GLuint Maparrowtexture;
+    extern GLuint Mapboxtexture;
+    extern GLuint Mapcircletexture;
+    extern GLuint cursortexture;
+    extern GLuint Mainmenuitems[10];
+
+    extern int selected;
+    extern int keyselect;
+
+    extern int newdetail;
+    extern int newscreenwidth;
+    extern int newscreenheight;
+
+    extern bool gameon;
+    extern float deltah,deltav;
+    extern int mousecoordh,mousecoordv;
+    extern int oldmousecoordh,oldmousecoordv;
+    extern float yaw,pitch;
+    extern SkyBox *skybox;
+    extern bool cameramode;
+    extern bool firstload;
+
+    extern float leveltime;
+    extern float loadtime;
+
+    extern Model hawk;
+    extern XYZ hawkcoords;
+    extern XYZ realhawkcoords;
+    extern GLuint hawktexture;
+    extern float hawkyaw;
+    extern float hawkcalldelay;
+
+    extern Model eye;
+    extern Model iris;
+    extern Model cornea;
+
+    extern bool stealthloading;
+    extern int loading;
+
+    extern int musictype;
+
+    extern XYZ mapcenter;
+    extern float mapradius;
+
+    extern Text *text;
+    extern float fps;
+
+    extern bool editorenabled;
+    extern int editortype;
+    extern float editorsize;
+    extern float editoryaw;
+    extern float editorpitch;
+
+    extern int tryquit;
+
+    extern XYZ pathpoint[30];
+    extern int numpathpoints;
+    extern int numpathpointconnect[30];
+    extern int pathpointconnect[30][30];
+    extern int pathpointselected;
+
+    extern int endgame;
+    extern bool scoreadded;
+    extern int numchallengelevels;
+
+    extern bool console;
+    extern char consoletext[15][256];
+    extern int consolechars[15];
+    extern bool chatting;
+    extern char displaytext[15][256];
+    extern int displaychars[15];
+    extern float displaytime[15];
+    extern float displayblinkdelay;
+    extern bool displayblink;
+    extern int displayselected;
+    extern float consoleblinkdelay;
+    extern bool consoleblink;
+    extern int consoleselected;
+
+    extern int oldenvironment;
+    extern int targetlevel;
+    extern float changedelay;
+
+    extern bool waiting;
+    extern Account* accountactive;
+
+    extern unsigned short crouchkey,jumpkey,forwardkey,chatkey,backkey,leftkey,rightkey,drawkey,throwkey,attackkey;
+    extern unsigned short consolekey;
+
+    void newGame();
+    void deleteGame();
+
+    void LoadTexture(const string fileName, GLuint *textureid,int mipmap, bool hasalpha);
+    void LoadTextureSave(const string fileName, GLuint *textureid,int mipmap,GLubyte *array, int *skinsize);
+    void InitGame();
+    void LoadStuff();
+    void LoadingScreen();
+    int DrawGLScene(StereoSide side);
+    void LoadMenu();
+    void Tick();
+    void TickOnce();
+    void TickOnceAfter();
+    void SetUpLighting();
+    GLvoid ReSizeGLScene(float fov, float near);
+    int checkcollide(XYZ startpoint, XYZ endpoint);
+    int checkcollide(XYZ startpoint, XYZ endpoint, int what);
+    
+    void fireSound(int sound=fireendsound);
+    void setKeySelected();
+
+    void inputText(char* str, int* charselected, int* nb_chars);
+    void flash();
+}
 
 #ifndef __forceinline
 #  ifdef __GNUC__
@@ -357,10 +215,10 @@ 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 float participantyaw[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 float dialoguecamerayaw[max_dialogues][max_dialoguelength];
+extern float dialoguecamerapitch[max_dialogues][max_dialoguelength];
 extern int indialogue;
 extern int whichdialogue;
 extern int directing;