]> git.jsancho.org Git - lugaru.git/blobdiff - Source/GameTick.cpp
Added GPL license and headers.
[lugaru.git] / Source / GameTick.cpp
index 790ddc375918bd19ccc6cfdcc9a451a61e8829c4..aa14e093b0808330bcd313bfb66792f86e88c2d4 100644 (file)
@@ -1,3 +1,24 @@
+/*
+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.
+
+This program 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.
+
+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.
+*/
+
 #if PLATFORM_UNIX
 #include <sys/stat.h>
 #include <sys/types.h>
@@ -1844,9 +1865,11 @@ void     Game::Tick()
 
                                if(newdetail>2)newdetail=detail;
                                if(newdetail<0)newdetail=detail;
+#if !USE_SDL  // we'll take anything that works.
                                if(newscreenwidth>3000)newscreenwidth=screenwidth;
-                               if(newscreenwidth<0)newscreenwidth=screenwidth;
                                if(newscreenheight>3000)newscreenheight=screenheight;
+#endif
+                               if(newscreenwidth<0)newscreenwidth=screenwidth;
                                if(newscreenheight<0)newscreenheight=screenheight;
 
                                ofstream opstream(ConvertFileName(":Data:config.txt", "w"));
@@ -2106,6 +2129,52 @@ void     Game::Tick()
                                FSOUND_Sample_SetMinMaxDistance(samp[firestartsound], 8.0f, 2000.0f);   
                        }
                        if(Button()&&!oldbutton&&selected==0){
+                               #if USE_SDL
+                               extern SDL_Rect **resolutions;
+                               bool isCustomResolution = true;
+                               bool found = false;
+                               for (int i = 0; (!found) && (resolutions[i]); i++)
+                               {
+                                       if ((resolutions[i]->w == screenwidth) && (resolutions[i]->h == screenwidth))
+                                               isCustomResolution = false;
+
+                                       if ((resolutions[i]->w == newscreenwidth) && (resolutions[i]->h == newscreenheight))
+                                       {
+                                               i++;
+                                               if (resolutions[i] != NULL)
+                                               {
+                                                       newscreenwidth = (int) resolutions[i]->w;
+                                                       newscreenheight = (int) resolutions[i]->h;
+                                               }
+                                               else if (isCustomResolution)
+                                               {
+                                                       if ((screenwidth == newscreenwidth) && (screenheight == newscreenheight))
+                                                       {
+                                                               newscreenwidth = (int) resolutions[0]->w;
+                                                               newscreenheight = (int) resolutions[0]->h;
+                                                       }
+                                                       else
+                                                       {
+                                                               newscreenwidth = screenwidth;
+                                                               newscreenheight = screenheight;
+                                                       }
+                                               }
+                                               else
+                                               {
+                                                       newscreenwidth = (int) resolutions[0]->w;
+                                                       newscreenheight = (int) resolutions[0]->h;
+                                               }
+                                               found = true;
+                                       }
+                               }
+
+                               if (!found)
+                               {
+                                       newscreenwidth = (int) resolutions[0]->w;
+                                       newscreenheight = (int) resolutions[0]->h;
+                               }
+
+                               #else
                                int whichres;
                                whichres=-1;
                                if(newscreenwidth==640&&newscreenheight==480)whichres=0;
@@ -2154,6 +2223,7 @@ void      Game::Tick()
                                        newscreenwidth=1920;
                                        newscreenheight=1200;
                                }
+                               #endif
                        }
                        if(Button()&&!oldbutton&&selected==1){
                                newdetail++;
@@ -2244,9 +2314,11 @@ void     Game::Tick()
 
                                if(newdetail>2)newdetail=detail;
                                if(newdetail<0)newdetail=detail;
+#if !USE_SDL  // we'll take anything that works.
                                if(newscreenwidth>3000)newscreenwidth=screenwidth;
-                               if(newscreenwidth<0)newscreenwidth=screenwidth;
                                if(newscreenheight>3000)newscreenheight=screenheight;
+#endif
+                               if(newscreenwidth<0)newscreenwidth=screenwidth;
                                if(newscreenheight<0)newscreenheight=screenheight;
 
 
@@ -2990,9 +3062,11 @@ void     Game::Tick()
                        if(mainmenu==3){
                                if(newdetail>2)newdetail=detail;
                                if(newdetail<0)newdetail=detail;
+#if !USE_SDL  // we'll take anything that works.
                                if(newscreenwidth>3000)newscreenwidth=screenwidth;
-                               if(newscreenwidth<0)newscreenwidth=screenwidth;
                                if(newscreenheight>3000)newscreenheight=screenheight;
+#endif
+                               if(newscreenwidth<0)newscreenwidth=screenwidth;
                                if(newscreenheight<0)newscreenheight=screenheight;
 
                                ofstream opstream(ConvertFileName(":Data:config.txt", "w"));
@@ -3174,7 +3248,13 @@ void     Game::Tick()
                                                        if(displaychars[0]){
                                                                char serialstring[256];
                                                                char tempstring[256];
+                                                               #if defined(__APPLE__)
+                                                               sprintf (tempstring, "%s", registrationname);
+                                                               #elif defined(_MSC_VER) || defined(__linux__)
                                                                sprintf (tempstring, "%s-windows", registrationname);
+                                                               #else
+                                                               #error Please make sure you have the right registration key stuff here!
+                                                               #endif
                                                                long num1;
                                                                long num2;
                                                                long num3;
@@ -5628,9 +5708,11 @@ void     Game::Tick()
                        if(mainmenu==3){
                                if(newdetail>2)newdetail=detail;
                                if(newdetail<0)newdetail=detail;
+#if !USE_SDL  // we'll take anything that works.
                                if(newscreenwidth>3000)newscreenwidth=screenwidth;
-                               if(newscreenwidth<0)newscreenwidth=screenwidth;
                                if(newscreenheight>3000)newscreenheight=screenheight;
+#endif
+                               if(newscreenwidth<0)newscreenwidth=screenwidth;
                                if(newscreenheight<0)newscreenheight=screenheight;
 
                                ofstream opstream(ConvertFileName(":Data:config.txt", "w"));