]> git.mxchange.org Git - quix0rs-blobwars.git/blob - src/CParticle.cpp
Set LC_NUMERIC to C.
[quix0rs-blobwars.git] / src / CParticle.cpp
1 /*
2 Copyright (C) 2004-2011 Parallel Realities
3 Copyright (C) 2011-2015 Perpendicular Dimensions
4
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 as published by the Free Software Foundation; either version 2
8 of the License, or (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
14 See the GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19
20 */
21
22 #include "headers.h"
23
24 Particle::Particle()
25 {
26         x = y = 0;
27         dx = dy = 0;
28         sprite = NULL;
29         color = 0;
30         next = NULL;
31 }
32
33 void Particle::set(float x, float y, float dx, float dy, int color, int health, int flags)
34 {
35         this->x = x;
36         this->y = y;
37         this->dx = dx;
38         this->dy = dy;
39         this->color = color;
40         this->health = health;
41         this->flags = flags;
42 }
43
44 void Particle::setSprite(Sprite *sprite)
45 {
46         if (sprite == NULL)
47                 return;
48
49         this->sprite = sprite;
50
51         currentFrame = Math::prand() % (sprite->maxFrames + 1);
52         currentTime = 1;
53 }
54
55 SDL_Surface *Particle::getFrame()
56 {
57         currentTime--;
58
59         if (currentTime == 0)
60         {
61                 currentFrame++;
62                 sprite->getNextFrame(&currentFrame, &currentTime);
63         }
64
65         return sprite->image[currentFrame];
66 }
67
68 void Particle::move()
69 {
70         x += dx;
71         y += dy;
72 }