X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGame.h;h=f5b42074b40351d932ab66823ac524d85758ac09;hb=1c7d28a2fc93699ab955ea66203d0c36bba9d977;hp=ec30c86ae7a00df3267cbe7494830cd63aaa640c;hpb=9e06cb73424ca3f0eb971350c5dfb3cdaec0d5bf;p=lugaru.git diff --git a/Source/Game.h b/Source/Game.h index ec30c86..f5b4207 100644 --- a/Source/Game.h +++ b/Source/Game.h @@ -58,129 +58,126 @@ 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 -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(); +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 Texture 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 Texture 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 std::string consoletext[15]; +extern bool chatting; +extern std::string displaytext[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 InitGame(); +void LoadStuff(); +void LoadScreenTexture(); +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(std::string& str, int* charselected); +void flash(); } #ifndef __forceinline @@ -191,16 +188,24 @@ namespace Game { static __forceinline void swap_gl_buffers(void) { - SDL_GL_SwapBuffers(); + extern SDL_Window *sdlwindow; + SDL_GL_SwapWindow(sdlwindow); + + // try to limit this to 60fps, even if vsync fails. + Uint32 now; + static Uint32 frameticks = 0; + const Uint32 endticks = (frameticks + 16); + while ((now = SDL_GetTicks()) < endticks) { /* spin. */ } + frameticks = now; } -extern "C" { void UndefinedSymbolToExposeStubbedCode(void); } +extern "C" { + void UndefinedSymbolToExposeStubbedCode(void); +} //#define STUBBED(x) UndefinedSymbolToExposeStubbedCode(); #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; @@ -226,8 +231,8 @@ extern float dialoguetime; extern int dialoguegonethrough[20]; enum maptypes { - mapkilleveryone, mapgosomewhere, - mapkillsomeone, mapkillmost // These two are unused + mapkilleveryone, mapgosomewhere, + mapkillsomeone, mapkillmost // These two are unused }; enum pathtypes {wpkeepwalking, wppause}; @@ -235,11 +240,12 @@ enum pathtypes {wpkeepwalking, wppause}; static const char *pathtypenames[] = {"keepwalking", "pause"}; enum editortypes {typeactive, typesitting, typesittingwall, typesleeping, - typedead1, typedead2, typedead3, typedead4}; + typedead1, typedead2, typedead3, typedead4 + }; static const char *editortypenames[] = { - "active", "sitting", "sitting wall", "sleeping", - "dead1", "dead2", "dead3", "dead4" + "active", "sitting", "sitting wall", "sleeping", + "dead1", "dead2", "dead3", "dead4" }; #endif