X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGameInitDispose.cpp;h=935b69d0541af59df7623f0606b74620a451f611;hb=ff29f47f799d99cec7c2a6aa2cf818da2b931fc5;hp=827c923e74cdb49da7c009d7839122aaf7bc5a89;hpb=24004d6ab1e68faaf85ece11b566449997da5013;p=lugaru.git diff --git a/Source/GameInitDispose.cpp b/Source/GameInitDispose.cpp index 827c923..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 } @@ -138,8 +129,10 @@ void Game::newGame() void Game::deleteGame() { - if (skybox) delete skybox; - if (text) delete text; + if (skybox) + delete skybox; + if (text) + delete text; terraintexture.destroy(); terraintexture2.destroy(); cursortexture.destroy(); @@ -162,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); @@ -172,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++; } } } @@ -222,21 +202,22 @@ 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); - if (0 > deltaTime) // if negative microseconds + if (0 > deltaTime) // if negative microseconds deltaTime /= -1000000.0; - else // else milliseconds + else // else milliseconds deltaTime /= 1000.0; multiplier = deltaTime; - if (multiplier < .001)multiplier = .001; - if (multiplier > 10)multiplier = 10; + if (multiplier < .001) + multiplier = .001; + if (multiplier > 10) + multiplier = 10; if (multiplier > .05) { - frametime = currTime; // reset for next time interval + frametime = currTime; // reset for next time interval glLoadIdentity(); //Clear to black @@ -247,9 +228,8 @@ void Game::LoadingScreen() loadtime += multiplier * 4; loadprogress = loadtime; - if (loadprogress > 100)loadprogress = 100; - - //loadprogress=abs(Random()%100); + if (loadprogress > 100) + loadprogress = 100; //Background @@ -257,54 +237,52 @@ void Game::LoadingScreen() loadscreentexture.bind(); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); - glDisable(GL_DEPTH_TEST); // Disables Depth Testing + glDisable(GL_DEPTH_TEST); glDisable(GL_CULL_FACE); glDisable(GL_LIGHTING); glDepthMask(0); - glMatrixMode(GL_PROJECTION); // Select The Projection Matrix - glPushMatrix(); // Store The Projection Matrix - glLoadIdentity(); // Reset The Projection Matrix - glOrtho(0, screenwidth, 0, screenheight, -100, 100); // Set Up An Ortho Screen - glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix - glPushMatrix(); // Store The Modelview Matrix - glLoadIdentity(); // Reset The Modelview Matrix + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + glOrtho(0, screenwidth, 0, screenheight, -100, 100); + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadIdentity(); glTranslatef(screenwidth / 2, screenheight / 2, 0); glScalef((float)screenwidth / 2, (float)screenheight / 2, 1); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 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); + glVertex3f(-1, -1, 0.0f); glTexCoord2f(.1 - loadprogress / 100, 0 + loadprogress / 100 + .3); - glVertex3f(1, -1, 0.0f); + glVertex3f(1, -1, 0.0f); glTexCoord2f(.1 - loadprogress / 100, 1 + loadprogress / 100 + .3); - glVertex3f(1, 1, 0.0f); + glVertex3f(1, 1, 0.0f); glTexCoord2f(.1 - loadprogress / 100, 1 + loadprogress / 100 + .3); - glVertex3f(-1, 1, 0.0f); + glVertex3f(-1, 1, 0.0f); glEnd(); glPopMatrix(); glEnable(GL_BLEND); glPushMatrix(); - //glScalef(.25,.25,.25); glBegin(GL_QUADS); glTexCoord2f(.4 + loadprogress / 100, 0 + loadprogress / 100); - glVertex3f(-1, -1, 0.0f); + glVertex3f(-1, -1, 0.0f); glTexCoord2f(.4 + loadprogress / 100, 0 + loadprogress / 100); - glVertex3f(1, -1, 0.0f); + glVertex3f(1, -1, 0.0f); glTexCoord2f(.4 + loadprogress / 100, 1 + loadprogress / 100); - glVertex3f(1, 1, 0.0f); + glVertex3f(1, 1, 0.0f); glTexCoord2f(.4 + loadprogress / 100, 1 + loadprogress / 100); - glVertex3f(-1, 1, 0.0f); + glVertex3f(-1, 1, 0.0f); glEnd(); glPopMatrix(); glDisable(GL_TEXTURE_2D); - glMatrixMode(GL_PROJECTION); // Select The Projection Matrix - glPopMatrix(); // Restore The Old Projection Matrix - glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix - glPopMatrix(); // Restore The Old Projection Matrix + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); glDisable(GL_BLEND); glDepthMask(1); @@ -312,41 +290,39 @@ void Game::LoadingScreen() loadscreentexture.bind(); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); - glDisable(GL_DEPTH_TEST); // Disables Depth Testing + glDisable(GL_DEPTH_TEST); glDisable(GL_CULL_FACE); glDisable(GL_LIGHTING); glDepthMask(0); - glMatrixMode(GL_PROJECTION); // Select The Projection Matrix - glPushMatrix(); // Store The Projection Matrix - glLoadIdentity(); // Reset The Projection Matrix - glOrtho(0, screenwidth, 0, screenheight, -100, 100); // Set Up An Ortho Screen - glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix - glPushMatrix(); // Store The Modelview Matrix - glLoadIdentity(); // Reset The Modelview Matrix + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + glOrtho(0, screenwidth, 0, screenheight, -100, 100); + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadIdentity(); glTranslatef(screenwidth / 2, screenheight / 2, 0); 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); + glVertex3f(-1, -1, 0.0f); glTexCoord2f(1 + .5, 0 + .5); - glVertex3f(1, -1, 0.0f); + glVertex3f(1, -1, 0.0f); glTexCoord2f(1 + .5, 1 + .5); - glVertex3f(1, 1, 0.0f); + glVertex3f(1, 1, 0.0f); glTexCoord2f(0 + .5, 1 + .5); - glVertex3f(-1, 1, 0.0f); + glVertex3f(-1, 1, 0.0f); glEnd(); glPopMatrix(); glDisable(GL_TEXTURE_2D); - glMatrixMode(GL_PROJECTION); // Select The Projection Matrix - glPopMatrix(); // Restore The Old Projection Matrix - glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix - glPopMatrix(); // Restore The Old Projection Matrix + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); glDisable(GL_BLEND); glDepthMask(1); @@ -354,77 +330,79 @@ void Game::LoadingScreen() loadscreentexture.bind(); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); - glDisable(GL_DEPTH_TEST); // Disables Depth Testing + glDisable(GL_DEPTH_TEST); glDisable(GL_CULL_FACE); glDisable(GL_LIGHTING); glDepthMask(0); - glMatrixMode(GL_PROJECTION); // Select The Projection Matrix - glPushMatrix(); // Store The Projection Matrix - glLoadIdentity(); // Reset The Projection Matrix - glOrtho(0, screenwidth, 0, screenheight, -100, 100); // Set Up An Ortho Screen - glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix - glPushMatrix(); // Store The Modelview Matrix - glLoadIdentity(); // Reset The Modelview Matrix + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + glOrtho(0, screenwidth, 0, screenheight, -100, 100); + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadIdentity(); glTranslatef(screenwidth / 2, screenheight / 2, 0); glScalef((float)screenwidth / 2 * (100 + loadprogress) / 100, (float)screenheight / 2 * (100 + loadprogress) / 100, 1); glBlendFunc(GL_SRC_ALPHA, GL_ONE); 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); + glVertex3f(-1, -1, 0.0f); glTexCoord2f(1 + .2, 0 + .8); - glVertex3f(1, -1, 0.0f); + glVertex3f(1, -1, 0.0f); glTexCoord2f(1 + .2, 1 + .8); - glVertex3f(1, 1, 0.0f); + glVertex3f(1, 1, 0.0f); glTexCoord2f(0 + .2, 1 + .8); - glVertex3f(-1, 1, 0.0f); + glVertex3f(-1, 1, 0.0f); glEnd(); glPopMatrix(); glDisable(GL_TEXTURE_2D); - glMatrixMode(GL_PROJECTION); // Select The Projection Matrix - glPopMatrix(); // Restore The Old Projection Matrix - glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix - glPopMatrix(); // Restore The Old Projection Matrix + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); glDisable(GL_BLEND); glDepthMask(1); //Text if (flashamount > 0) { - if (flashamount > 1)flashamount = 1; - if (flashdelay <= 0)flashamount -= multiplier; + if (flashamount > 1) + flashamount = 1; + if (flashdelay <= 0) + flashamount -= multiplier; flashdelay--; - if (flashamount < 0)flashamount = 0; - glDisable(GL_DEPTH_TEST); // Disables Depth Testing + if (flashamount < 0) + flashamount = 0; + glDisable(GL_DEPTH_TEST); glDisable(GL_CULL_FACE); glDisable(GL_LIGHTING); glDisable(GL_TEXTURE_2D); glDepthMask(0); - glMatrixMode(GL_PROJECTION); // Select The Projection Matrix - glPushMatrix(); // Store The Projection Matrix - glLoadIdentity(); // Reset The Projection Matrix - glOrtho(0, screenwidth, 0, screenheight, -100, 100); // Set Up An Ortho Screen - glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix - glPushMatrix(); // Store The Modelview Matrix - glLoadIdentity(); // Reset The Modelview Matrix + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + glOrtho(0, screenwidth, 0, screenheight, -100, 100); + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadIdentity(); glScalef(screenwidth, screenheight, 1); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); glColor4f(flashr, flashg, flashb, flashamount); glBegin(GL_QUADS); - glVertex3f(0, 0, 0.0f); - glVertex3f(256, 0, 0.0f); - glVertex3f(256, 256, 0.0f); - glVertex3f(0, 256, 0.0f); + glVertex3f(0, 0, 0.0f); + glVertex3f(256, 0, 0.0f); + glVertex3f(256, 256, 0.0f); + glVertex3f(0, 256, 0.0f); glEnd(); - glMatrixMode(GL_PROJECTION); // Select The Projection Matrix - glPopMatrix(); // Restore The Old Projection Matrix - glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix - glPopMatrix(); // Restore The Old Projection Matrix - glEnable(GL_DEPTH_TEST); // Enables Depth Testing + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); + glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glDisable(GL_BLEND); glDepthMask(1); @@ -445,90 +423,58 @@ 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); // Disables Depth Testing + glDisable(GL_DEPTH_TEST); glDisable(GL_CULL_FACE); glDisable(GL_LIGHTING); glDepthMask(0); - glMatrixMode(GL_PROJECTION); // Select The Projection Matrix - glPushMatrix(); // Store The Projection Matrix - glLoadIdentity(); // Reset The Projection Matrix - glOrtho(0, screenwidth, 0, screenheight, -100, 100); // Set Up An Ortho Screen - glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix - glPushMatrix(); // Store The Modelview Matrix - glLoadIdentity(); // Reset The Modelview Matrix + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + glOrtho(0, screenwidth, 0, screenheight, -100, 100); + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadIdentity(); glTranslatef(screenwidth / 2, screenheight / 2, 0); glScalef((float)screenwidth / 2, (float)screenheight / 2, 1); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 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); + glVertex3f(-1, -1, 0.0f); glTexCoord2f(1, 0); - glVertex3f(1, -1, 0.0f); + glVertex3f(1, -1, 0.0f); glTexCoord2f(1, 1); - glVertex3f(1, 1, 0.0f); + glVertex3f(1, 1, 0.0f); glTexCoord2f(0, 1); - glVertex3f(-1, 1, 0.0f); + glVertex3f(-1, 1, 0.0f); glEnd(); glPopMatrix(); glDisable(GL_TEXTURE_2D); - glMatrixMode(GL_PROJECTION); // Select The Projection Matrix - glPopMatrix(); // Restore The Old Projection Matrix - glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix - glPopMatrix(); // Restore The Old Projection Matrix + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); glDisable(GL_BLEND); glDepthMask(1); //Text 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; @@ -611,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"); @@ -634,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); @@ -677,7 +618,8 @@ void Game::InitGame() Maparrowtexture.load(":Data:Textures:MapArrow.png", 0, 1); temptexdetail = texdetail; - if (texdetail > 2)texdetail = 2; + if (texdetail > 2) + texdetail = 2; Mainmenuitems[0].load(":Data:Textures:Lugaru.png", 0, 0); Mainmenuitems[1].load(":Data:Textures:Newgame.png", 0, 0); Mainmenuitems[2].load(":Data:Textures:Options.png", 0, 0); @@ -738,8 +680,9 @@ void Game::LoadStuff() stillloading = 1; - for (i = 0; i < maxplayers; i++) - player[i].skeleton.drawmodel.textureptr.destroy(); + for (auto p:Person::players) { + p->skeleton.drawmodel.textureptr.destroy(); + } i = abs(Random() % 4); visibleloading = 0; //don't use loadscreentexture yet @@ -769,9 +712,6 @@ void Game::LoadStuff() realtexdetail = texdetail; - numplayers = 1; - - LOG("Loading weapon data..."); Weapon::knifetextureptr.load(":Data:Textures:knife.png", 0, 1); @@ -784,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); @@ -841,9 +775,12 @@ void Game::LoadStuff() viewer = 0; - if (detail)kTextureSize = 1024; - if (detail == 1)kTextureSize = 512; - if (detail == 0)kTextureSize = 256; + if (detail) + kTextureSize = 1024; + if (detail == 1) + kTextureSize = 512; + if (detail == 0) + kTextureSize = 256; //Set up distant light light.color[0] = .95; @@ -907,7 +844,7 @@ void Game::LoadStuff() XYZ moveamount; moveamount = 0; moveamount.z = 2; - for (i = 0; i < player[0].skeleton.num_joints; i++) { + for (i = 0; i < Person::players[0]->skeleton.num_joints; i++) { for (j = 0; j < animation[knifesneakattackanim].numframes; j++) { animation[knifesneakattackanim].position[i][j] += moveamount; } @@ -915,7 +852,7 @@ void Game::LoadStuff() LoadingScreen(); - for (i = 0; i < player[0].skeleton.num_joints; i++) { + for (i = 0; i < Person::players[0]->skeleton.num_joints; i++) { for (j = 0; j < animation[knifesneakattackedanim].numframes; j++) { animation[knifesneakattackedanim].position[i][j] += moveamount; } @@ -923,7 +860,7 @@ void Game::LoadStuff() LoadingScreen(); - for (i = 0; i < player[0].skeleton.num_joints; i++) { + for (i = 0; i < Person::players[0]->skeleton.num_joints; i++) { animation[dead1anim].position[i][1] = animation[dead1anim].position[i][0]; animation[dead2anim].position[i][1] = animation[dead2anim].position[i][0]; animation[dead3anim].position[i][1] = animation[dead3anim].position[i][0]; @@ -939,7 +876,7 @@ void Game::LoadStuff() animation[dead3anim].speed[1] = 0.001; animation[dead4anim].speed[1] = 0.001; - for (i = 0; i < player[0].skeleton.num_joints; i++) { + for (i = 0; i < Person::players[0]->skeleton.num_joints; i++) { for (j = 0; j < animation[swordsneakattackanim].numframes; j++) { animation[swordsneakattackanim].position[i][j] += moveamount; } @@ -951,7 +888,7 @@ void Game::LoadStuff() LoadingScreen(); - for (i = 0; i < player[0].skeleton.num_joints; i++) { + for (i = 0; i < Person::players[0]->skeleton.num_joints; i++) { for (j = 0; j < animation[swordsneakattackedanim].numframes; j++) { animation[swordsneakattackedanim].position[i][j] += moveamount; }