X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fobject%2Fparticles.cpp;h=18432ea089c16e9aa3e54e64a86def60f80cc09c;hb=c1277f5b7db9f55d1d28f658b4e804f32b76f0ce;hp=86cf466bc7063ba622f1fd649bc4fb8e0849b824;hpb=da3301ebf60baf7e39dffd3bca35af5298fe9724;p=supertux.git diff --git a/src/object/particles.cpp b/src/object/particles.cpp index 86cf466bc..18432ea08 100644 --- a/src/object/particles.cpp +++ b/src/object/particles.cpp @@ -1,36 +1,39 @@ -// $Id$ -// // SuperTux -// Copyright (C) 2000 Bill Kendrick -// Copyright (C) 2004 Tobias Glaesser +// Copyright (C) 2006 Matthias Braun // -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. -// +// // You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -// 02111-1307, USA. -#include +// along with this program. If not, see . + +#include "object/particles.hpp" #include -#include "particles.hpp" -#include "sector.hpp" -#include "camera.hpp" -#include "main.hpp" +#include "math/random_generator.hpp" +#include "object/camera.hpp" +#include "supertux/main.hpp" +#include "supertux/sector.hpp" +#include "video/drawing_context.hpp" Particles::Particles(const Vector& epicenter, int min_angle, int max_angle, - const Vector& initial_velocity, const Vector& acceleration, int number, - Color color_, int size_, float life_time, int drawing_layer_) - : accel(acceleration), color(color_), size(size_), drawing_layer(drawing_layer_) + const Vector& initial_velocity, const Vector& acceleration, int number, + Color color_, int size_, float life_time, int drawing_layer_) : + accel(acceleration), + timer(), + live_forever(), + color(color_), + size(size_), + drawing_layer(drawing_layer_), + particles() { if(life_time == 0) { live_forever = true; @@ -41,21 +44,21 @@ Particles::Particles(const Vector& epicenter, int min_angle, int max_angle, // create particles for(int p = 0; p < number; p++) - { + { Particle* particle = new Particle; particle->pos = epicenter; - float angle = ((rand() % (max_angle-min_angle))+min_angle) - * (M_PI / 180); // convert to radius + float angle = systemRandom.rand(min_angle, max_angle) + * (M_PI / 180); // convert to radius (radians?) particle->vel.x = /*fabs*/(sin(angle)) * initial_velocity.x; -// if(angle >= M_PI && angle < M_PI*2) -// particle->vel.x *= -1; // work around to fix signal + // if(angle >= M_PI && angle < M_PI*2) + // particle->vel.x *= -1; // work around to fix signal particle->vel.y = /*fabs*/(cos(angle)) * initial_velocity.y; -// if(angle >= M_PI_2 && angle < 3*M_PI_2) -// particle->vel.y *= -1; + // if(angle >= M_PI_2 && angle < 3*M_PI_2) + // particle->vel.y *= -1; particles.push_back(particle); - } + } } Particles::~Particles() @@ -103,3 +106,4 @@ Particles::draw(DrawingContext& context) } } +/* EOF */