]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Game.h
some findClosest* refactoring
[lugaru.git] / Source / Game.h
index 32dbced0608aa583e3838209a9faf6241fc2a7b7..a378efcd28b3fb249a06d6f4c04769ac97ef4f01 100644 (file)
@@ -58,126 +58,24 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #include "Stereo.h"
 #include "Account.h"
 #include "Sounds.h"
+#include "Texture.h"
 
 #define NB_CAMPAIGN_MENU_ITEM 7
 
-extern GLuint rabbittexture;
-
-struct TextureInfo;
-
-class CampaignLevel
-{
-private:
-       int width;
-       struct Position
-       {
-               int x;
-               int y;
-       };
-public: 
-       std::string mapname;
-       std::string description;
-       int choosenext;
-               /*      
-               0 = Immediately load next level at the end of this one.
-               1 = Go back to the world map.
-               2 = Don't bring up the Fiery loading screen. Maybe other things, I've not investigated.
-               */
-       //int numnext; // 0 on final level. As David said: he meant to add story branching, but he eventually hadn't. 
-       std::vector<int> nextlevel;
-       Position location;
-       
-       CampaignLevel() : width(10) {
-               choosenext = 1;
-               location.x = 0;
-               location.y = 0;
-       }
-       
-       int getStartX() {
-               return 30+120+location.x*400/512;
-       }
-       
-       int getStartY() {
-               return 30+30+(512-location.y)*400/512;
-       }
-       
-       int getEndX() {
-               return getStartX()+width;
-       }
-       
-       int getEndY() {
-               return getStartY()+width;
-       }
-       
-       XYZ getCenter() {
-               XYZ center;
-               center.x=getStartX()+width/2;
-               center.y=getStartY()+width/2;
-               return center;
-       }
-       
-       int getWidth() {
-               return width;
-       }
-       
-       istream& operator<< (istream& is) {
-               is.ignore(256,':');
-               is.ignore(256,':');
-               is.ignore(256,' ');
-               is >> mapname;
-               is.ignore(256,':');
-               is >> description;
-               for(int pos = description.find('_');pos!=string::npos;pos = description.find('_',pos)) {
-                       description.replace(pos,1,1,' ');
-               }
-               is.ignore(256,':');
-               is >> choosenext;
-               is.ignore(256,':');
-               int numnext,next;
-               is >> numnext;
-               for(int j=0;j<numnext;j++) {
-                       is.ignore(256,':');
-                       is >> next;
-                       nextlevel.push_back(next-1);
-               }
-               is.ignore(256,':');
-               is >> location.x;
-               is.ignore(256,':');
-               is >> location.y;
-               return is;
-       }
-       
-       friend istream& operator>> (istream& is, CampaignLevel& cl) {
-               return cl << is;
-       }
-};
-
-namespace Game
-{
-    //public:
-    extern GLuint terraintexture;
-    extern GLuint terraintexture2;
-    extern GLuint terraintexture3;
+namespace Game {
+    extern Texture terraintexture;
+    extern Texture terraintexture2;
+    extern Texture loadscreentexture;
+    extern Texture Maparrowtexture;
+    extern Texture Mapboxtexture;
+    extern Texture Mapcircletexture;
+    extern Texture cursortexture;
     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 Texture Mainmenuitems[10];
 
     extern int selected;
     extern int keyselect;
-    extern int indemo;
-
-    extern bool won;
-
-    extern bool entername;
-
-    extern char registrationname[256];
-    extern float registrationnumber;
 
     extern int newdetail;
     extern int newscreenwidth;
@@ -187,13 +85,10 @@ namespace Game
     extern float deltah,deltav;
     extern int mousecoordh,mousecoordv;
     extern int oldmousecoordh,oldmousecoordv;
-    extern float rotation,rotation2;
-    extern SkyBox skybox;
+    extern float yaw,pitch;
+    extern SkyBox *skybox;
     extern bool cameramode;
-    extern int olddrawmode;
-    extern int drawmode;
     extern bool firstload;
-    extern bool oldbutton;
 
     extern float leveltime;
     extern float loadtime;
@@ -201,8 +96,8 @@ namespace Game
     extern Model hawk;
     extern XYZ hawkcoords;
     extern XYZ realhawkcoords;
-    extern GLuint hawktexture;
-    extern float hawkrotation;
+    extern Texture hawktexture;
+    extern float hawkyaw;
     extern float hawkcalldelay;
 
     extern Model eye;
@@ -210,41 +105,22 @@ namespace Game
     extern Model cornea;
 
     extern bool stealthloading;
+    extern int loading;
 
-    extern std::vector<CampaignLevel> campaignlevels;
-    extern int whichchoice;
-    extern int actuallevel;
-    extern bool winhotspot;
-    extern bool windialogue;
-
-    extern bool minimap;
-
-    extern int musictype,oldmusictype,oldoldmusictype;
-    extern bool realthreat;
-
-    extern Model rabbit;
-    extern XYZ rabbitcoords;
+    extern int musictype;
 
     extern XYZ mapcenter;
     extern float mapradius;
 
-    extern Texttext;
+    extern Text *text;
     extern float fps;
 
-    extern XYZ cameraloc;
-    extern float cameradist;
-
-    extern int drawtoggle;
-
     extern bool editorenabled;
     extern int editortype;
     extern float editorsize;
-    extern float editorrotation;
-    extern float editorrotation2;
+    extern float editoryaw;
+    extern float editorpitch;
 
-    extern float brightness;
-
-    extern int quit;
     extern int tryquit;
 
     extern XYZ pathpoint[30];
@@ -258,7 +134,6 @@ namespace Game
     extern int numchallengelevels;
 
     extern bool console;
-    extern int archiveselected;
     extern char consoletext[15][256];
     extern int consolechars[15];
     extern bool chatting;
@@ -268,81 +143,42 @@ namespace Game
     extern float displayblinkdelay;
     extern bool displayblink;
     extern int displayselected;
-    extern bool consolekeydown;
     extern float consoleblinkdelay;
     extern bool consoleblink;
     extern int consoleselected;
-    extern bool autocam;
+
+    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;
-    extern bool oldattackkey;
 
-    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 LoadSave(const char *fileName, GLuint *textureid,bool mipmap,GLubyte *array, int *skinsize);
-    bool AddClothes(const char *fileName, GLubyte *array);
+    void newGame();
+    void deleteGame();
+
     void InitGame();
-    void LoadScreenTexture();
     void LoadStuff();
+    void LoadScreenTexture();
     void LoadingScreen();
-    void LoadCampaign();
-    std::vector<std::string> ListCampaigns();
-    void FadeLoadingScreen(float howmuch);
-    void Dispose();
     int DrawGLScene(StereoSide side);
-    void DrawMenu();
-    void DrawGL();
     void LoadMenu();
-    //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);
-    extern int loading;
-    extern float talkdelay;
     
     void fireSound(int sound=fireendsound);
     void setKeySelected();
 
-    extern int numboundaries;
-    extern XYZ boundary[360];
-
-    extern int whichlevel;
-    extern int oldenvironment;
-    extern int targetlevel;
-    extern float changedelay;
-
-    extern float musicvolume[4];
-    extern float oldmusicvolume[4];
-    extern int musicselected;
-    extern int change;
-    void newGame();
-    void deleteGame();
-    extern bool waiting;
-    //private:
-    int setKeySelected_thread(void*);
-    int thread(void *data);
     void inputText(char* str, int* charselected, int* nb_chars);
     void flash();
-    //bool waiting;
-    extern Account* accountactive;
 }
 
 #ifndef __forceinline
@@ -377,10 +213,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;