Prevent gaps in beams of photons from powered clone

This commit is contained in:
jacksonmj 2012-02-19 00:49:04 +00:00
parent c960c29f72
commit 3702438482
4 changed files with 17 additions and 0 deletions

View File

@ -249,6 +249,7 @@
#define PROP_SPARKSETTLE 0x20000 //2^17 Allow Sparks/Embers to settle #define PROP_SPARKSETTLE 0x20000 //2^17 Allow Sparks/Embers to settle
#define FLAG_STAGNANT 1 #define FLAG_STAGNANT 1
#define FLAG_SKIPMOVE 0x2 // skip movement for one frame, only implemented for PHOT
#define GRAPHICS_FUNC_ARGS particle *cpart, int nx, int ny, int *pixel_mode, int* cola, int *colr, int *colg, int *colb, int *firea, int *firer, int *fireg, int *fireb #define GRAPHICS_FUNC_ARGS particle *cpart, int nx, int ny, int *pixel_mode, int* cola, int *colr, int *colg, int *colb, int *firea, int *firer, int *fireg, int *fireb
#define GRAPHICS_FUNC_SUBCALL_ARGS cpart, nx, ny, pixel_mode, cola, colr, colg, colb, firea, firer, fireg, fireb #define GRAPHICS_FUNC_SUBCALL_ARGS cpart, nx, ny, pixel_mode, cola, colr, colg, colb, firea, firer, fireg, fireb

View File

@ -69,6 +69,11 @@ int update_PBCN(UPDATE_FUNC_ARGS) {
{ {
parts[r].vx = rx*3; parts[r].vx = rx*3;
parts[r].vy = ry*3; parts[r].vy = ry*3;
if (r>i)
{
// Make sure movement doesn't happen until next frame, to avoid gaps in the beams of photons produced
parts[r].flags |= FLAG_SKIPMOVE;
}
} }
} }
} }

View File

@ -59,6 +59,11 @@ int update_PCLN(UPDATE_FUNC_ARGS) {
{ {
parts[r].vx = rx*3; parts[r].vx = rx*3;
parts[r].vy = ry*3; parts[r].vy = ry*3;
if (r>i)
{
// Make sure movement doesn't happen until next frame, to avoid gaps in the beams of photons produced
parts[r].flags |= FLAG_SKIPMOVE;
}
} }
} }
} }

View File

@ -2214,6 +2214,12 @@ killed:
if ((t==PT_PHOT||t==PT_NEUT||t==PT_ELEC)) { if ((t==PT_PHOT||t==PT_NEUT||t==PT_ELEC)) {
if (t == PT_PHOT) { if (t == PT_PHOT) {
if (parts[i].flags&FLAG_SKIPMOVE)
{
parts[i].flags &= ~FLAG_SKIPMOVE;
continue;
}
rt = pmap[fin_y][fin_x] & 0xFF; rt = pmap[fin_y][fin_x] & 0xFF;
lt = pmap[y][x] & 0xFF; lt = pmap[y][x] & 0xFF;