diff options
Diffstat (limited to 'src/render/dust.cc')
-rw-r--r-- | src/render/dust.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/render/dust.cc b/src/render/dust.cc index d58be1b..96a9d67 100644 --- a/src/render/dust.cc +++ b/src/render/dust.cc @@ -125,18 +125,17 @@ void Dust::draw() float dsquare = 0; for (size_t j = 0; j < 3; j++) { dsquare += (core::localcontrol()->location()[j] - dust[i*3+j]) * (core::localcontrol()->location()[j] - dust[i*3+j]); - v[j] = dust[i*3+j] - Camera::eye()[j]; + v[j] = dust[i*3+j] - core::localcontrol()->state()->axis().forward()[j] * traillength; } if (dsquare > (core::localcontrol()->radius() + DUSTDISTANCE)*(core::localcontrol()->radius() + DUSTDISTANCE)) { for (size_t j = 0; j < 3; j++) { dust[i*3+j] = core::localcontrol()->location()[j] + (math::randomf(2) - 1) * (DUSTDISTANCE + core::localcontrol()->radius()); - v[j] = dust[i*3+j] - Camera::eye()[j]; + v[j] = dust[i*3+j] - core::localcontrol()->state()->axis().forward()[j] * traillength; } } - gl::vertex(v); - - v -= core::localcontrol()->state()->axis().forward() * traillength; + + glVertex3fv(&dust[i*3]); gl::vertex(v); } |