Code: Select all
static byte *vidcolmap;
...
vidcolmap = (byte *)vid.colormap;
...
void R_DrawSurfaceBlock8_mip0 (void)
{
int v, i, lightstep, light;
byte *psource, *prowdest;
psource = pbasesource;
prowdest = prowdestbase;
for (v=0 ; v<r_numvblocks ; v++)
{
lightleft = r_lightptr[0];
lightright = r_lightptr[1];
r_lightptr += r_lightwidth;
lightleftstep = (r_lightptr[0] - lightleft) >> 4;
lightrightstep = (r_lightptr[1] - lightright) >> 4;
for (i=0 ; i<16 ; i++)
{
lightstep = (lightleft - lightright) >> 4;
light = lightright;
prowdest[15] = vidcolmap[((light += lightstep) & 0xFF00) + psource[15]];
prowdest[14] = vidcolmap[((light += lightstep) & 0xFF00) + psource[14]];
prowdest[13] = vidcolmap[((light += lightstep) & 0xFF00) + psource[13]];
prowdest[12] = vidcolmap[((light += lightstep) & 0xFF00) + psource[12]];
prowdest[11] = vidcolmap[((light += lightstep) & 0xFF00) + psource[11]];
prowdest[10] = vidcolmap[((light += lightstep) & 0xFF00) + psource[10]];
prowdest[9] = vidcolmap[((light += lightstep) & 0xFF00) + psource[9]];
prowdest[8] = vidcolmap[((light += lightstep) & 0xFF00) + psource[8]];
prowdest[7] = vidcolmap[((light += lightstep) & 0xFF00) + psource[7]];
prowdest[6] = vidcolmap[((light += lightstep) & 0xFF00) + psource[6]];
prowdest[5] = vidcolmap[((light += lightstep) & 0xFF00) + psource[5]];
prowdest[4] = vidcolmap[((light += lightstep) & 0xFF00) + psource[4]];
prowdest[3] = vidcolmap[((light += lightstep) & 0xFF00) + psource[3]];
prowdest[2] = vidcolmap[((light += lightstep) & 0xFF00) + psource[2]];
prowdest[1] = vidcolmap[((light += lightstep) & 0xFF00) + psource[1]];
prowdest[0] = vidcolmap[(light & 0xFF00) + psource[0]];
psource += sourcetstep;
lightright += lightrightstep;
lightleft += lightleftstep;
prowdest += surfrowbytes;
}
if (psource >= r_sourcemax)
psource -= r_stepback;
}
}
[edit2: declare vidcolmap 'static' ]