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