diff -u -r xtux.old/src/client/particle.c xtux/src/client/particle.c --- xtux.old/src/client/particle.c 2008-09-02 20:34:24.000000000 +0200 +++ xtux/src/client/particle.c 2008-09-02 20:35:40.000000000 +0200 @@ -340,11 +340,11 @@ ptl->pos[i].y = src_y; d = dir + 128; d += i%SHARD_ANGLE - SHARD_ANGLE/2; - ptl->vel[i].x = sin_lookup[dir + 64 + rand()%64] * SHARD_EXP_VEL; - ptl->vel[i].y = -cos_lookup[dir + 64 + rand()%64] * SHARD_EXP_VEL; + ptl->vel[i].x = sin_lookup[(dir + 64 + rand()%64) % DEGREES] * SHARD_EXP_VEL; + ptl->vel[i].y = -cos_lookup[(dir + 64 + rand()%64) % DEGREES] * SHARD_EXP_VEL; vel = SHARD_MIN_VEL + (SHARD_MAX_VEL*rand()/(RAND_MAX+SHARD_MIN_VEL)); - ptl->vel[i].x += vel * sin_lookup[d] * 10; - ptl->vel[i].y += vel * -cos_lookup[d] * 10; + ptl->vel[i].x += vel * sin_lookup[d % DEGREES] * 10; + ptl->vel[i].y += vel * -cos_lookup[d % DEGREES] * 10; } ptl = particles_new(color2, PTL_TOP, num_sh2); @@ -357,8 +357,8 @@ ptl->vel[i].x = sin_lookup[rand()%256] * SHARD_EXP_VEL; ptl->vel[i].y = -cos_lookup[rand()%256] * SHARD_EXP_VEL; vel = SHARD_MIN_VEL + (SHARD_MAX_VEL*rand()/(RAND_MAX+SHARD_MIN_VEL)); - ptl->vel[i].x += vel * sin_lookup[d] * 20; - ptl->vel[i].y += vel * -cos_lookup[d] * 20; + ptl->vel[i].x += vel * sin_lookup[d % DEGREES] * 20; + ptl->vel[i].y += vel * -cos_lookup[d % DEGREES] * 20; } /* "Extra" particles (ie bullet holes) */