diff ParticleEngine.cpp @ 1410:38df78aba732

deleted stru220.h and stru220 (bezier terrain stuff) stru167 -> TrailParticle stru167warp -> TrailParticleGenerator
author Nomad
date Fri, 26 Jul 2013 22:19:29 +0200
parents 613c77e51e38
children 2c71fa8913d2
line wrap: on
line diff
--- a/ParticleEngine.cpp	Fri Jul 26 21:16:51 2013 +0200
+++ b/ParticleEngine.cpp	Fri Jul 26 22:19:29 2013 +0200
@@ -12,6 +12,47 @@
 #include "OutdoorCamera.h"
 #include "mm7_data.h"
 
+TrailParticleGenerator trail_particle_generator;
+
+
+//----- (00440DF5) --------------------------------------------------------
+void TrailParticleGenerator::AddParticle(int x, int y, int z, int bgr16)
+{
+  particles[num_particles].x = x;
+  particles[num_particles].y = y;
+  particles[num_particles].z = z;
+  particles[num_particles].time_to_live = rand() % 64 + 256;
+  particles[num_particles].time_left = particles[num_particles].time_to_live;
+  particles[num_particles].bgr16 = bgr16;
+
+  num_particles++;
+  assert(num_particles < 100);
+}
+
+//----- (00440E91) --------------------------------------------------------
+void TrailParticleGenerator::GenerateTrailParticles(int x, int y, int z, int bgr16)
+{
+  for (int i = 0; i < 5 + rand() % 6; ++i)
+    AddParticle(rand() % 33 + x - 16,
+                rand() % 33 + y - 16,
+                rand() % 33 + z, bgr16);
+}
+
+//----- (00440F07) --------------------------------------------------------
+void TrailParticleGenerator::UpdateParticles()
+{
+  for (uint i = 0; i < 100; ++i)
+  {
+    if (particles[i].time_left > 0)
+    {
+      particles[i].x += rand() % 5 + 4;
+      particles[i].y += rand() % 5 - 2;
+      particles[i].z += rand() % 5 - 2;
+      particles[i].time_left -= pEventTimer->uTimeElapsed;
+    }
+  }
+}
+
 //----- (0048AAC5) --------------------------------------------------------
 ParticleEngine::ParticleEngine()
 {