X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGameInitDispose.cpp;h=e9655e9e61da66126e9c2a4b41bdfcb61d4cd070;hb=250a16d5fa14b462b44b1e698372164ac33aa721;hp=827c923e74cdb49da7c009d7839122aaf7bc5a89;hpb=24004d6ab1e68faaf85ece11b566449997da5013;p=lugaru.git diff --git a/Source/GameInitDispose.cpp b/Source/GameInitDispose.cpp index 827c923..e9655e9 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" @@ -47,7 +46,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 +53,7 @@ extern float multiplier; extern int netdatanew; extern float mapinfo; extern bool stillloading; -extern TGAImageRec texture; +extern ImageRec texture; extern short vRefNum; extern long dirID; extern int mainmenu; @@ -138,8 +136,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 +162,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 +169,18 @@ 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); + upload_image(ConvertFileName(fileName)); 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 +208,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 +234,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 +243,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 +296,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 +336,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,49 +429,44 @@ 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 @@ -499,26 +478,6 @@ 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; @@ -634,10 +593,8 @@ void Game::InitGame() LOG("Initializing sound system..."); #if PLATFORM_LINUX - int output = -1; - unsigned char rc = 0; - output = OPENAL_OUTPUT_ALSA; // Try alsa first... + int output = OPENAL_OUTPUT_ALSA; // Try alsa first... if (cmdline("forceoss")) // ...but let user override that. output = OPENAL_OUTPUT_OSS; else if (cmdline("nosound")) @@ -677,7 +634,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 +696,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 +728,6 @@ void Game::LoadStuff() realtexdetail = texdetail; - numplayers = 1; - - LOG("Loading weapon data..."); Weapon::knifetextureptr.load(":Data:Textures:knife.png", 0, 1); @@ -841,9 +797,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 +866,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 +874,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 +882,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 +898,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 +910,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; }