X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGameInitDispose.cpp;h=935b69d0541af59df7623f0606b74620a451f611;hb=ff29f47f799d99cec7c2a6aa2cf818da2b931fc5;hp=b7d90926a1ba641655e92ada8ea52dc307896bc0;hpb=2ce8e2f8ac6921286ebd6b30362c35b38e935977;p=lugaru.git diff --git a/Source/GameInitDispose.cpp b/Source/GameInitDispose.cpp index b7d9092..935b69d 100644 --- a/Source/GameInitDispose.cpp +++ b/Source/GameInitDispose.cpp @@ -1,22 +1,21 @@ /* Copyright (C) 2003, 2010 - Wolfire Games +Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file) 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 . */ #include "Game.h" @@ -35,7 +34,6 @@ extern Light light; extern Skeleton testskeleton; extern int numsounds; extern Terrain terrain; -//extern Sprites sprites; extern int kTextureSize; extern float texdetail; extern float realtexdetail; @@ -47,7 +45,6 @@ extern GLubyte bloodText[512 * 512 * 3]; extern GLubyte wolfbloodText[512 * 512 * 3]; extern bool ismotionblur; extern bool trilinear; -extern bool osx; extern bool musictoggle; extern int environment; extern bool ambientsound; @@ -55,7 +52,6 @@ extern float multiplier; extern int netdatanew; extern float mapinfo; extern bool stillloading; -extern TGAImageRec texture; extern short vRefNum; extern long dirID; extern int mainmenu; @@ -65,7 +61,6 @@ extern int flashdelay; extern int whichjointstartarray[26]; extern int whichjointendarray[26]; extern int difficulty; -extern float tintr, tintg, tintb; extern float slomospeed; extern bool gamestarted; @@ -123,10 +118,6 @@ void Dispose() } OPENAL_Close(); - if (texture.data) { - free(texture.data); - } - texture.data = 0; #endif } @@ -164,9 +155,6 @@ void Game::deleteGame() void LoadSave(const char *fileName, GLuint *textureid, bool mipmap, GLubyte *array, int *skinsize) { - int i; - int bytesPerPixel; - LOGFUNC; LOG(std::string("Loading (S)...") + fileName); @@ -174,29 +162,19 @@ void LoadSave(const char *fileName, GLuint *textureid, bool mipmap, GLubyte *arr //Load Image float temptexdetail = texdetail; texdetail = 1; - //upload_image( fileName ); - //LoadTGA( fileName ); - // Converting file to something os specific - char * fixedFN = ConvertFileName(fileName); - - //Load Image - unsigned char fileNamep[256]; - CopyCStringToPascal(fixedFN, fileNamep); //Load Image - upload_image( fileNamep , 0); + ImageRec texture; + load_image(ConvertFileName(fileName), texture); texdetail = temptexdetail; - //Is it valid? - if (1 == 1) { - bytesPerPixel = texture.bpp / 8; + int bytesPerPixel = texture.bpp / 8; - int tempnum = 0; - for (i = 0; i < (int)(texture.sizeY * texture.sizeX * bytesPerPixel); i++) { - if ((i + 1) % 4 || bytesPerPixel == 3) { - array[tempnum] = texture.data[i]; - tempnum++; - } + int tempnum = 0; + for (int i = 0; i < (int)(texture.sizeY * texture.sizeX * bytesPerPixel); i++) { + if ((i + 1) % 4 || bytesPerPixel == 3) { + array[tempnum] = texture.data[i]; + tempnum++; } } } @@ -224,7 +202,6 @@ GLvoid Game::ReSizeGLScene(float fov, float pnear) void Game::LoadingScreen() { static float loadprogress; - //~ static AbsoluteTime time = {0, 0}; static AbsoluteTime frametime = {0, 0}; AbsoluteTime currTime = UpTime (); double deltaTime = (float) AbsoluteDeltaToDuration (currTime, frametime); @@ -254,8 +231,6 @@ void Game::LoadingScreen() if (loadprogress > 100) loadprogress = 100; - //loadprogress=abs(Random()%100); - //Background glEnable(GL_TEXTURE_2D); @@ -279,7 +254,6 @@ void Game::LoadingScreen() glDisable(GL_BLEND); glColor4f(loadprogress / 100, loadprogress / 100, loadprogress / 100, 1); glPushMatrix(); - //glScalef(.25,.25,.25); glBegin(GL_QUADS); glTexCoord2f(.1 - loadprogress / 100, 0 + loadprogress / 100 + .3); glVertex3f(-1, -1, 0.0f); @@ -293,7 +267,6 @@ void Game::LoadingScreen() glPopMatrix(); glEnable(GL_BLEND); glPushMatrix(); - //glScalef(.25,.25,.25); glBegin(GL_QUADS); glTexCoord2f(.4 + loadprogress / 100, 0 + loadprogress / 100); glVertex3f(-1, -1, 0.0f); @@ -332,10 +305,8 @@ void Game::LoadingScreen() glScalef((float)screenwidth / 2 * (1.5 - (loadprogress) / 200), (float)screenheight / 2 * (1.5 - (loadprogress) / 200), 1); glBlendFunc(GL_SRC_ALPHA, GL_ONE); glEnable(GL_BLEND); - //glColor4f(loadprogress/100,loadprogress/100,loadprogress/100,1); glColor4f(loadprogress / 100, loadprogress / 100, loadprogress / 100, 1); glPushMatrix(); - //glScalef(.25,.25,.25); glBegin(GL_QUADS); glTexCoord2f(0 + .5, 0 + .5); glVertex3f(-1, -1, 0.0f); @@ -376,7 +347,6 @@ void Game::LoadingScreen() glEnable(GL_BLEND); glColor4f(loadprogress / 100, loadprogress / 100, loadprogress / 100, .4); glPushMatrix(); - //glScalef(.25,.25,.25); glBegin(GL_QUADS); glTexCoord2f(0 + .2, 0 + .8); glVertex3f(-1, -1, 0.0f); @@ -453,13 +423,9 @@ void FadeLoadingScreen(float howmuch) loadprogress = howmuch; - //loadprogress=abs(Random()%100); - //Background - //glEnable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D); - //glBindTexture( GL_TEXTURE_2D, loadscreentexture); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE ); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE ); glDisable(GL_DEPTH_TEST); @@ -479,7 +445,6 @@ void FadeLoadingScreen(float howmuch) glDisable(GL_BLEND); glColor4f(loadprogress / 100, 0, 0, 1); glPushMatrix(); - //glScalef(.25,.25,.25); glBegin(GL_QUADS); glTexCoord2f(0, 0); glVertex3f(-1, -1, 0.0f); @@ -502,41 +467,14 @@ void FadeLoadingScreen(float howmuch) swap_gl_buffers(); } - -extern bool cmdline(const char *cmd); - void Game::InitGame() { -#if PLATFORM_MACOSX - ProcessSerialNumber PSN; - ProcessInfoRec pinfo; - FSSpec pspec; - OSStatus err; - /* set up process serial number */ - PSN.highLongOfPSN = 0; - PSN.lowLongOfPSN = kCurrentProcess; - /* set up info block */ - pinfo.processInfoLength = sizeof(pinfo); - pinfo.processName = NULL; - pinfo.processAppSpec = &pspec; - /* grab the vrefnum and directory */ - err = GetProcessInformation(&PSN, &pinfo); - if (err == noErr) { - vRefNum = pspec.vRefNum; - dirID = pspec.parID; - } -#endif - LOGFUNC; numchallengelevels = 14; accountactive = Account::loadFile(":Data:Users"); - tintr = 1; - tintg = 1; - tintb = 1; - whichjointstartarray[0] = righthip; whichjointendarray[0] = rightfoot; @@ -619,8 +557,6 @@ void Game::InitGame() stillloading = 1; - texture.data = ( GLubyte* )malloc( 1024 * 1024 * 4 ); - int temptexdetail = texdetail; texdetail = 1; text->LoadFontTexture(":Data:Textures:Font.png"); @@ -642,19 +578,16 @@ void Game::InitGame() LOG("Initializing sound system..."); #if PLATFORM_LINUX - int output = -1; - unsigned char rc = 0; - output = OPENAL_OUTPUT_ALSA; // Try alsa first... - if (cmdline("forceoss")) // ...but let user override that. - output = OPENAL_OUTPUT_OSS; - else if (cmdline("nosound")) - output = OPENAL_OUTPUT_NOSOUND; + int output = OPENAL_OUTPUT_ALSA; // Try alsa first... + if (commandLineOptions[SOUND]) { + output = commandLineOptions[SOUND].last()->type(); // ...but let user override that. + } OPENAL_SetOutput(output); if ((rc = OPENAL_Init(44100, 32, 0)) == false) { // if we tried ALSA and failed, fall back to OSS. - if ( (output == OPENAL_OUTPUT_ALSA) && (!cmdline("forcealsa")) ) { + if ( (output == OPENAL_OUTPUT_ALSA) && (commandLineOptions[SOUND].last()->type() != OPENAL_OUTPUT_ALSA) ) { OPENAL_Close(); output = OPENAL_OUTPUT_OSS; OPENAL_SetOutput(output); @@ -779,9 +712,6 @@ void Game::LoadStuff() realtexdetail = texdetail; - numplayers = 1; - - LOG("Loading weapon data..."); Weapon::knifetextureptr.load(":Data:Textures:knife.png", 0, 1); @@ -794,32 +724,26 @@ void Game::LoadStuff() Weapon::throwingknifemodel.load((char *)":Data:Models:throwingknife.solid", 1); Weapon::throwingknifemodel.Scale(.001, .001, .001); - //Weapon::throwingknifemodel.Rotate(0,0,-90); Weapon::throwingknifemodel.Rotate(90, 0, 0); Weapon::throwingknifemodel.Rotate(0, 90, 0); Weapon::throwingknifemodel.flat = 0; Weapon::throwingknifemodel.CalculateNormals(1); - //Weapon::throwingknifemodel.ScaleNormals(-1,-1,-1); Weapon::swordmodel.load((char *)":Data:Models:sword.solid", 1); Weapon::swordmodel.Scale(.001, .001, .001); - //Weapon::swordmodel.Rotate(0,0,-90); Weapon::swordmodel.Rotate(90, 0, 0); Weapon::swordmodel.Rotate(0, 90, 0); Weapon::swordmodel.Rotate(0, 0, 90); Weapon::swordmodel.flat = 1; Weapon::swordmodel.CalculateNormals(1); - //Weapon::swordmodel.ScaleNormals(-1,-1,-1); Weapon::staffmodel.load((char *)":Data:Models:staff.solid", 1); Weapon::staffmodel.Scale(.005, .005, .005); - //Weapon::staffmodel.Rotate(0,0,-90); Weapon::staffmodel.Rotate(90, 0, 0); Weapon::staffmodel.Rotate(0, 90, 0); Weapon::staffmodel.Rotate(0, 0, 90); Weapon::staffmodel.flat = 1; Weapon::staffmodel.CalculateNormals(1); - //Weapon::staffmodel.ScaleNormals(-1,-1,-1); terrain.shadowtexture.load(":Data:Textures:shadow.png", 0, 1); terrain.bloodtexture.load(":Data:Textures:blood.png", 0, 1);