#define PATHPOINTS 8
int i, j, px, py, nearestpathindex, imagenumber;
float particlex, particley, particlexv, particleyv, dx, dy, s, maxpathstrength;
- qbyte *pixels;
+ unsigned char *pixels;
int *image;
- struct {float x, y, strength;} path[PATHPOINTS], temppath;
+ struct lightningpathnode_s
+ {
+ float x, y, strength;
+ }
+ path[PATHPOINTS], temppath;
image = Mem_Alloc(tempmempool, BEAMWIDTH * BEAMHEIGHT * sizeof(int));
- pixels = Mem_Alloc(tempmempool, BEAMWIDTH * BEAMHEIGHT * sizeof(qbyte[4]));
+ pixels = Mem_Alloc(tempmempool, BEAMWIDTH * BEAMHEIGHT * sizeof(unsigned char[4]));
for (imagenumber = 0, maxpathstrength = 0.0339476;maxpathstrength < 0.5;imagenumber++, maxpathstrength += 0.01)
{
#define BEAMHEIGHT 128
float r, g, b, intensity, fx, width, center;
int x, y;
- qbyte *data, *noise1, *noise2;
+ unsigned char *data, *noise1, *noise2;
- data = Mem_Alloc(tempmempool, BEAMWIDTH * BEAMHEIGHT * 4);
- noise1 = Mem_Alloc(tempmempool, BEAMHEIGHT * BEAMHEIGHT);
- noise2 = Mem_Alloc(tempmempool, BEAMHEIGHT * BEAMHEIGHT);
+ data = (unsigned char *)Mem_Alloc(tempmempool, BEAMWIDTH * BEAMHEIGHT * 4);
+ noise1 = (unsigned char *)Mem_Alloc(tempmempool, BEAMHEIGHT * BEAMHEIGHT);
+ noise2 = (unsigned char *)Mem_Alloc(tempmempool, BEAMHEIGHT * BEAMHEIGHT);
fractalnoise(noise1, BEAMHEIGHT, BEAMHEIGHT / 8);
fractalnoise(noise2, BEAMHEIGHT, BEAMHEIGHT / 16);
r = intensity * 1.0f;
g = intensity * 1.0f;
b = intensity * 1.0f;
- data[(y * BEAMWIDTH + x) * 4 + 0] = (qbyte)(bound(0, r, 1) * 255.0f);
- data[(y * BEAMWIDTH + x) * 4 + 1] = (qbyte)(bound(0, g, 1) * 255.0f);
- data[(y * BEAMWIDTH + x) * 4 + 2] = (qbyte)(bound(0, b, 1) * 255.0f);
- data[(y * BEAMWIDTH + x) * 4 + 3] = (qbyte)255;
+ data[(y * BEAMWIDTH + x) * 4 + 0] = (unsigned char)(bound(0, r, 1) * 255.0f);
+ data[(y * BEAMWIDTH + x) * 4 + 1] = (unsigned char)(bound(0, g, 1) * 255.0f);
+ data[(y * BEAMWIDTH + x) * 4 + 2] = (unsigned char)(bound(0, b, 1) * 255.0f);
+ data[(y * BEAMWIDTH + x) * 4 + 3] = (unsigned char)255;
}
}
void R_FogLightningBeam_Vertex3f_Color4f(const float *v, float *c, int numverts, float r, float g, float b, float a)
{
int i;
- vec3_t fogvec;
float ifog;
for (i = 0;i < numverts;i++, v += 3, c += 4)
{
- VectorSubtract(v, r_vieworigin, fogvec);
- ifog = 1 - exp(fogdensity/DotProduct(fogvec,fogvec));
+ ifog = 1 - VERTEXFOGTABLE(VectorDistance(v, r_vieworigin));
c[0] = r * ifog;
c[1] = g * ifog;
c[2] = b * ifog;
void R_DrawLightningBeamCallback(const void *calldata1, int calldata2)
{
- const beam_t *b = calldata1;
+ const beam_t *b = (beam_t *)calldata1;
rmeshstate_t m;
vec3_t beamdir, right, up, offset;
float length, t1, t2;