diff options
| author | jacksonmj <mj-pt@jacksonmj.co.uk> | 2011-04-06 12:36:56 (GMT) |
|---|---|---|
| committer | Simon <simon@hardwired.org.uk> | 2011-04-08 10:10:41 (GMT) |
| commit | 29e41a0a0cfb9a83802fc3a3fe283a6d272b3331 (patch) | |
| tree | e8d398845c3f62fb4b8e76c816f28104371d06f1 /src/elements | |
| parent | 63f3f90c555dfc3d37bbf4dc5230f16055f13135 (diff) | |
| download | powder-29e41a0a0cfb9a83802fc3a3fe283a6d272b3331.zip powder-29e41a0a0cfb9a83802fc3a3fe283a6d272b3331.tar.gz | |
Portal orbital effects stop more smoothly
When fe==0, dots finish moving to destinations before disappearing
Diffstat (limited to 'src/elements')
| -rw-r--r-- | src/elements/prti.c | 22 | ||||
| -rw-r--r-- | src/elements/prto.c | 26 |
2 files changed, 22 insertions, 26 deletions
diff --git a/src/elements/prti.c b/src/elements/prti.c index 30f86ae..c206115 100644 --- a/src/elements/prti.c +++ b/src/elements/prti.c @@ -41,32 +41,28 @@ int update_PRTI(UPDATE_FUNC_ARGS) { } } - - if (fe) { + if (fe || parts[i].life || parts[i].ctype) { int orbd[4] = {0, 0, 0, 0}; //Orbital distances int orbl[4] = {0, 0, 0, 0}; //Orbital locations if (!parts[i].life) parts[i].life = rand(); if (!parts[i].ctype) parts[i].ctype = rand(); orbitalparts_get(parts[i].life, parts[i].ctype, orbd, orbl); for (r = 0; r < 4; r++) { - if (orbd[r]>1) { + if (orbd[r]>12) { orbd[r] -= 12; - if (orbd[r]<1) { + orbl[r] += 2; + orbl[r] = orbl[r]%255; + } else { + if (fe) { orbd[r] = (rand()%128)+128; orbl[r] = rand()%255; - } else { - orbl[r] += 2; - orbl[r] = orbl[r]%255; } - } else { - orbd[r] = (rand()%128)+128; - orbl[r] = rand()%255; + else { + orbd[r] = orbl[r] = 0; + } } } orbitalparts_set(&parts[i].life, &parts[i].ctype, orbd, orbl); - } else { - parts[i].life = 0; - parts[i].ctype = 0; } return 0; } diff --git a/src/elements/prto.c b/src/elements/prto.c index 46c7250..1fb4105 100644 --- a/src/elements/prto.c +++ b/src/elements/prto.c @@ -62,30 +62,30 @@ int update_PRTO(UPDATE_FUNC_ARGS) { } } } - if (fe) { + + if (fe || parts[i].ctype) { int orbd[4] = {0, 0, 0, 0}; //Orbital distances int orbl[4] = {0, 0, 0, 0}; //Orbital locations - if (!parts[i].life) parts[i].life = rand(); - if (!parts[i].ctype) parts[i].life = rand(); + if (!parts[i].life || !(~parts[i].life)) parts[i].life = rand(); + if (!parts[i].ctype) parts[i].ctype = rand(); orbitalparts_get(parts[i].life, parts[i].ctype, orbd, orbl); for (r = 0; r < 4; r++) { - if (orbd[r]<254) { + if (orbd[r]<239) { orbd[r] += 16; - if (orbd[r]>254) { - orbd[r] = 0; - orbl[r] = rand()%255; - } //orbl[r] += 1; //orbl[r] = orbl[r]%255; } else { - orbd[r] = 0; - orbl[r] = rand()%255; + if (fe) { + orbd[r] = 0; + orbl[r] = rand()%255; + } + else { + orbd[r] = 255; + orbl[r] = 0; + } } } orbitalparts_set(&parts[i].life, &parts[i].ctype, orbd, orbl); - } else { - parts[i].life = 0; - parts[i].ctype = 0; } return 0; } |
