X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGame.h;h=5c3f80f766d6d4151b3e40e83789478d4e2862a0;hb=cd043e3f9e26c2b3406b40a354c2840941e9db7f;hp=87c6c2e6b0faa726495686cd3f9ac14355bb1031;hpb=adaf84d76926538d8235c721169a8d8346dff87b;p=lugaru.git diff --git a/Source/Game.h b/Source/Game.h index 87c6c2e..5c3f80f 100644 --- a/Source/Game.h +++ b/Source/Game.h @@ -3,20 +3,18 @@ Copyright (C) 2003, 2010 - Wolfire Games This file is part of Lugaru. -Lugaru is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +Lugaru is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. -This program is distributed in the hope that it will be useful, +Lugaru is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -See the GNU General Public License for more details. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +along with Lugaru. If not, see . */ #ifndef _GAME_H_ @@ -135,18 +133,15 @@ 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 std::string consoletext[15]; +extern std::string displaytext[15]; extern float displaytime[15]; extern float displayblinkdelay; extern bool displayblink; -extern int displayselected; +extern unsigned displayselected; extern float consoleblinkdelay; extern bool consoleblink; -extern int consoleselected; +extern unsigned consoleselected; extern int oldenvironment; extern int targetlevel; @@ -155,7 +150,7 @@ 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 crouchkey, jumpkey, forwardkey, backkey, leftkey, rightkey, drawkey, throwkey, attackkey; extern unsigned short consolekey; void newGame(); @@ -178,7 +173,7 @@ 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 inputText(std::string& str, unsigned* charselected); void flash(); } @@ -190,7 +185,15 @@ void flash(); 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" { @@ -231,15 +234,12 @@ enum maptypes { enum pathtypes {wpkeepwalking, wppause}; -static const char *pathtypenames[] = {"keepwalking", "pause"}; +extern const char *pathtypenames[2]; enum editortypes {typeactive, typesitting, typesittingwall, typesleeping, typedead1, typedead2, typedead3, typedead4 }; -static const char *editortypenames[] = { - "active", "sitting", "sitting wall", "sleeping", - "dead1", "dead2", "dead3", "dead4" -}; +extern const char *editortypenames[8]; #endif