+/*
+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>
extern int accountcampaignchoicesmade[10];
extern int accountcampaignchoices[10][5000];
/********************> Tick() <*****/
-extern FSOUND_STREAM * strm[10];
+extern FSOUND_STREAM * strm[20];
extern "C" void PlaySoundEx(int channel, FSOUND_SAMPLE *sptr, FSOUND_DSPUNIT *dsp, signed char startpaused);
extern "C" void PlayStreamEx(int chan, FSOUND_STREAM *sptr, FSOUND_DSPUNIT *dsp, signed char startpaused);
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(":Data:config.txt");
- ofstream opstream("./Data/config.txt");
+ ofstream opstream(ConvertFileName(":Data:config.txt", "w"));
opstream << "Screenwidth:\n";
opstream << newscreenwidth;
opstream << "\nScreenheight:\n";
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;
if(newscreenwidth==840&&newscreenheight==524)whichres=5;
if(newscreenwidth==1024&&newscreenheight==640)whichres=6;
if(newscreenwidth==1344&&newscreenheight==840)whichres=7;
+ if(newscreenwidth==1920&&newscreenheight==1200)whichres=8;
- if(whichres==-1||whichres==7){
+ if(whichres==-1||whichres==8){
newscreenwidth=640;
newscreenheight=480;
}
newscreenwidth=1344;
newscreenheight=840;
}
+ if(whichres==7){
+ newscreenwidth=1920;
+ newscreenheight=1200;
+ }
+ #endif
}
if(Button()&&!oldbutton&&selected==1){
newdetail++;
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(":Data:config.txt");
- ofstream opstream("./Data/config.txt");
+ ofstream opstream(ConvertFileName(":Data:config.txt", "w"));
opstream << "Screenwidth:\n";
opstream << newscreenwidth;
opstream << "\nScreenheight:\n";
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(":Data:config.txt");
- ofstream opstream("./Data/config.txt");
+ ofstream opstream(ConvertFileName(":Data:config.txt", "w"));
opstream << "Screenwidth:\n";
opstream << newscreenwidth;
opstream << "\nScreenheight:\n";
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;
}
}
- ifstream ipstream(mapname);
+ ifstream ipstream(ConvertFileName(mapname));
ipstream.ignore(256,':');
ipstream >> numdialogueboxes[numdialogues];
for(i=0;i<numdialogueboxes[numdialogues];i++){
}
}
- ifstream ipstream(mapname);
+ ifstream ipstream(ConvertFileName(mapname));
ipstream.ignore(256,':');
ipstream >> numdialogueboxes[whichdi];
for(i=0;i<numdialogueboxes[whichdi];i++){
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(":Data:config.txt");
- ofstream opstream("./Data/config.txt");
+ ofstream opstream(ConvertFileName(":Data:config.txt", "w"));
opstream << "Screenwidth:\n";
opstream << newscreenwidth;
opstream << "\nScreenheight:\n";
oldtemp2=temp2;
if(tutorialstage>=51)
if(findDistancefast(&temp,&player[0].coords)>=findDistancefast(&temp,&temp2)-1||findDistancefast(&temp3,&player[0].coords)<4){
+ FSOUND_StopSound(FSOUND_ALL); // hack...OpenAL renderer isn't stopping music after tutorial goes to level menu...
FSOUND_SetFrequency(FSOUND_ALL, 0.001);
PlayStreamEx( stream_music3, strm[stream_music3], NULL, TRUE);
startbonustotal=0;
- // ifstream ipstream(":Data:Campaigns:main.txt");
- ifstream ipstream("./Data/Campaigns/main.txt");
+ ifstream ipstream(ConvertFileName(":Data:Campaigns:main.txt"));
//campaignnumlevels=0;
//accountcampaignchoicesmade[accountactive]=0;
ipstream.ignore(256,':');