for (unsigned i = 0; i < sprites.size(); i++) {
if (lasttype != sprites[i]->type) {
switch (sprites[i]->type) {
- case cloudsprite:
- cloudtexture.bind();
- if (!blend) {
- blend = 1;
- glAlphaFunc(GL_GREATER, 0.0001);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
- break;
- case breathsprite:
- case cloudimpactsprite:
- cloudimpacttexture.bind();
- if (!blend) {
- blend = 1;
- glAlphaFunc(GL_GREATER, 0.0001);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
- break;
- case smoketype:
- smoketexture.bind();
- if (!blend) {
- blend = 1;
- glAlphaFunc(GL_GREATER, 0.0001);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
- break;
- case bloodsprite:
- bloodtexture.bind();
- if (!blend) {
- blend = 1;
- glAlphaFunc(GL_GREATER, 0.0001);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
- break;
- case splintersprite :
- if (lastspecial != sprites[i]->special) {
- if (sprites[i]->special == 0)
- splintertexture.bind();
- if (sprites[i]->special == 1)
- leaftexture.bind();
- if (sprites[i]->special == 2)
- snowflaketexture.bind();
- if (sprites[i]->special == 3)
- toothtexture.bind();
+ case cloudsprite:
+ cloudtexture.bind();
if (!blend) {
blend = 1;
glAlphaFunc(GL_GREATER, 0.0001);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
- }
- break;
- case snowsprite:
- snowflaketexture.bind();
- if (!blend) {
- blend = 1;
- glAlphaFunc(GL_GREATER, 0.0001);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
- break;
- case weaponshinesprite:
- shinetexture.bind();
- if (blend) {
- blend = 0;
- glAlphaFunc(GL_GREATER, 0.001);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE);
- }
- break;
- case flamesprite:
- case weaponflamesprite:
- flametexture.bind();
- if (blend || lasttype == bloodflamesprite) {
- blend = 0;
- glAlphaFunc(GL_GREATER, 0.3);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE);
- }
- break;
- case bloodflamesprite:
- bloodflametexture.bind();
- if (blend) {
- blend = 0;
- glAlphaFunc(GL_GREATER, 0.3);
- glBlendFunc(GL_ONE, GL_ZERO);
- }
- break;
+ break;
+ case breathsprite:
+ case cloudimpactsprite:
+ cloudimpacttexture.bind();
+ if (!blend) {
+ blend = 1;
+ glAlphaFunc(GL_GREATER, 0.0001);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+ break;
+ case smoketype:
+ smoketexture.bind();
+ if (!blend) {
+ blend = 1;
+ glAlphaFunc(GL_GREATER, 0.0001);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+ break;
+ case bloodsprite:
+ bloodtexture.bind();
+ if (!blend) {
+ blend = 1;
+ glAlphaFunc(GL_GREATER, 0.0001);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+ break;
+ case splintersprite:
+ if (lastspecial != sprites[i]->special) {
+ if (sprites[i]->special == 0)
+ splintertexture.bind();
+ if (sprites[i]->special == 1)
+ leaftexture.bind();
+ if (sprites[i]->special == 2)
+ snowflaketexture.bind();
+ if (sprites[i]->special == 3)
+ toothtexture.bind();
+ if (!blend) {
+ blend = 1;
+ glAlphaFunc(GL_GREATER, 0.0001);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+ }
+ break;
+ case snowsprite:
+ snowflaketexture.bind();
+ if (!blend) {
+ blend = 1;
+ glAlphaFunc(GL_GREATER, 0.0001);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+ break;
+ case weaponshinesprite:
+ shinetexture.bind();
+ if (blend) {
+ blend = 0;
+ glAlphaFunc(GL_GREATER, 0.001);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+ }
+ break;
+ case flamesprite:
+ case weaponflamesprite:
+ flametexture.bind();
+ if (blend || lasttype == bloodflamesprite) {
+ blend = 0;
+ glAlphaFunc(GL_GREATER, 0.3);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+ }
+ break;
+ case bloodflamesprite:
+ bloodflametexture.bind();
+ if (blend) {
+ blend = 0;
+ glAlphaFunc(GL_GREATER, 0.3);
+ glBlendFunc(GL_ONE, GL_ZERO);
+ }
+ break;
}
}
if (sprites[i]->type == snowsprite)
glColor4f(sprites[i]->color[0], sprites[i]->color[1], sprites[i]->color[2], sprites[i]->opacity * distancemult);
} else {
if (distancemult >= 1)
- glColor4f(sprites[i]->color[0]*lightcolor[0], sprites[i]->color[1]*lightcolor[1], sprites[i]->color[2]*lightcolor[2], sprites[i]->opacity);
+ glColor4f(sprites[i]->color[0] * lightcolor[0], sprites[i]->color[1] * lightcolor[1], sprites[i]->color[2] * lightcolor[2], sprites[i]->opacity);
else
- glColor4f(sprites[i]->color[0]*lightcolor[0], sprites[i]->color[1]*lightcolor[1], sprites[i]->color[2]*lightcolor[2], sprites[i]->opacity * distancemult);
+ glColor4f(sprites[i]->color[0] * lightcolor[0], sprites[i]->color[1] * lightcolor[1], sprites[i]->color[2] * lightcolor[2], sprites[i]->opacity * distancemult);
}
lasttype = sprites[i]->type;
lastspecial = sprites[i]->special;
if (sprites[i]->type == smoketype || sprites[i]->type == snowsprite || sprites[i]->type == weaponshinesprite || sprites[i]->type == breathsprite) {
if (sprites[i]->alivetime < .3) {
if (distancemult >= 1)
- glColor4f(sprites[i]->color[0]*lightcolor[0], sprites[i]->color[1]*lightcolor[1], sprites[i]->color[2]*lightcolor[2], sprites[i]->opacity * sprites[i]->alivetime / .3);
+ glColor4f(sprites[i]->color[0] * lightcolor[0], sprites[i]->color[1] * lightcolor[1], sprites[i]->color[2] * lightcolor[2], sprites[i]->opacity * sprites[i]->alivetime / .3);
if (distancemult < 1)
- glColor4f(sprites[i]->color[0]*lightcolor[0], sprites[i]->color[1]*lightcolor[1], sprites[i]->color[2]*lightcolor[2], sprites[i]->opacity * distancemult * sprites[i]->alivetime / .3);
+ glColor4f(sprites[i]->color[0] * lightcolor[0], sprites[i]->color[1] * lightcolor[1], sprites[i]->color[2] * lightcolor[2], sprites[i]->opacity * distancemult * sprites[i]->alivetime / .3);
}
}
if (sprites[i]->type == splintersprite && sprites[i]->special > 0 && sprites[i]->special != 3) {
if (sprites[i]->alivetime < .2) {
if (distancemult >= 1)
- glColor4f(sprites[i]->color[0]*lightcolor[0], sprites[i]->color[1]*lightcolor[1], sprites[i]->color[2]*lightcolor[2], sprites[i]->alivetime / .2);
+ glColor4f(sprites[i]->color[0] * lightcolor[0], sprites[i]->color[1] * lightcolor[1], sprites[i]->color[2] * lightcolor[2], sprites[i]->alivetime / .2);
else
- glColor4f(sprites[i]->color[0]*lightcolor[0], sprites[i]->color[1]*lightcolor[1], sprites[i]->color[2]*lightcolor[2], distancemult * sprites[i]->alivetime / .2);
+ glColor4f(sprites[i]->color[0] * lightcolor[0], sprites[i]->color[1] * lightcolor[1], sprites[i]->color[2] * lightcolor[2], distancemult * sprites[i]->alivetime / .2);
} else {
if (distancemult >= 1)
- glColor4f(sprites[i]->color[0]*lightcolor[0], sprites[i]->color[1]*lightcolor[1], sprites[i]->color[2]*lightcolor[2], 1);
+ glColor4f(sprites[i]->color[0] * lightcolor[0], sprites[i]->color[1] * lightcolor[1], sprites[i]->color[2] * lightcolor[2], 1);
else
- glColor4f(sprites[i]->color[0]*lightcolor[0], sprites[i]->color[1]*lightcolor[1], sprites[i]->color[2]*lightcolor[2], distancemult);
+ glColor4f(sprites[i]->color[0] * lightcolor[0], sprites[i]->color[1] * lightcolor[1], sprites[i]->color[2] * lightcolor[2], distancemult);
}
}
if (sprites[i]->type == splintersprite && (sprites[i]->special == 0 || sprites[i]->special == 3)) {
if (distancemult >= 1)
- glColor4f(sprites[i]->color[0]*lightcolor[0], sprites[i]->color[1]*lightcolor[1], sprites[i]->color[2]*lightcolor[2], 1);
+ glColor4f(sprites[i]->color[0] * lightcolor[0], sprites[i]->color[1] * lightcolor[1], sprites[i]->color[2] * lightcolor[2], 1);
else
- glColor4f(sprites[i]->color[0]*lightcolor[0], sprites[i]->color[1]*lightcolor[1], sprites[i]->color[2]*lightcolor[2], distancemult);
+ glColor4f(sprites[i]->color[0] * lightcolor[0], sprites[i]->color[1] * lightcolor[1], sprites[i]->color[2] * lightcolor[2], distancemult);
}
glBegin(GL_TRIANGLES);
glTexCoord2f(1.0f, 1.0f);
- glVertex3f( .5 * sprites[i]->size, .5 * sprites[i]->size, 0.0f);
+ glVertex3f(.5 * sprites[i]->size, .5 * sprites[i]->size, 0.0f);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-.5 * sprites[i]->size, .5 * sprites[i]->size, 0.0f);
glTexCoord2f(1.0f, 0.0f);
- glVertex3f( .5 * sprites[i]->size, -.5 * sprites[i]->size, 0.0f);
+ glVertex3f(.5 * sprites[i]->size, -.5 * sprites[i]->size, 0.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-.5 * sprites[i]->size, -.5 * sprites[i]->size, 0.0f);
glTexCoord2f(1.0f, 0.0f);
- glVertex3f( .5 * sprites[i]->size, -.5 * sprites[i]->size, 0.0f);
+ glVertex3f(.5 * sprites[i]->size, -.5 * sprites[i]->size, 0.0f);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-.5 * sprites[i]->size, .5 * sprites[i]->size, 0.0f);
glEnd();
sprites[i]->rotation += multiplier * 360;
sprites[i]->position.y -= multiplier;
sprites[i]->position += windvector * multiplier;
- if (sprites[i]->position.y < tempviewer.y - 6) sprites[i]->position.y += 12;
- if (sprites[i]->position.y > tempviewer.y + 6) sprites[i]->position.y -= 12;
- if (sprites[i]->position.z < tempviewer.z - 6) sprites[i]->position.z += 12;
- if (sprites[i]->position.z > tempviewer.z + 6) sprites[i]->position.z -= 12;
- if (sprites[i]->position.x < tempviewer.x - 6) sprites[i]->position.x += 12;
- if (sprites[i]->position.x > tempviewer.x + 6) sprites[i]->position.x -= 12;
+ if (sprites[i]->position.y < tempviewer.y - 6)
+ sprites[i]->position.y += 12;
+ if (sprites[i]->position.y > tempviewer.y + 6)
+ sprites[i]->position.y -= 12;
+ if (sprites[i]->position.z < tempviewer.z - 6)
+ sprites[i]->position.z += 12;
+ if (sprites[i]->position.z > tempviewer.z + 6)
+ sprites[i]->position.z -= 12;
+ if (sprites[i]->position.x < tempviewer.x - 6)
+ sprites[i]->position.x += 12;
+ if (sprites[i]->position.x > tempviewer.x + 6)
+ sprites[i]->position.x -= 12;
}
if (sprites[i]->type == bloodsprite) {
bool spritehit = 0;