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();
void Game::LoadingScreen()
{
static float loadprogress;
- static AbsoluteTime time = {0, 0};
+ //~ 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
loadtime += multiplier * 4;
loadprogress = loadtime;
- if (loadprogress > 100)loadprogress = 100;
+ if (loadprogress > 100)
+ loadprogress = 100;
//loadprogress=abs(Random()%100);
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);
//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);
//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);
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);
//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);
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);
//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);
//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);
//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
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);
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
realtexdetail = texdetail;
- numplayers = 1;
-
-
LOG("Loading weapon data...");
Weapon::knifetextureptr.load(":Data:Textures:knife.png", 0, 1);
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;
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;
}
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;
}
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];
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;
}
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;
}