#include "resources.h"
#include "interactive_object.h"
#include "door.h"
+#include "statistics.h"
Sector* Sector::_current = 0;
std::remove(smoke_clouds.begin(), smoke_clouds.end(), smoke_cloud),
smoke_clouds.end());
}
-
+ Particles* particle = dynamic_cast<Particles*> (*i);
+ if(particle) {
+ particles.erase(
+ std::remove(particles.begin(), particles.end(), particle),
+ particles.end());
+ }
+
delete *i;
i = gameobjects.erase(i);
} else {
SmokeCloud* smoke_cloud = dynamic_cast<SmokeCloud*> (*i);
if(smoke_cloud)
smoke_clouds.push_back(smoke_cloud);
-
+ Particles* particle = dynamic_cast<Particles*> (*i);
+ if(particle)
+ particles.push_back(particle);
gameobjects.push_back(*i);
}
void
Sector::add_score(const Vector& pos, int s)
{
- player_status.score += s;
+ global_stats.add_points(SCORE_STAT, s);
add_object(new FloatingScore(pos, s));
}
return true;
}
+bool
+Sector::add_particles(const Vector& epicenter, const Vector& velocity, const Vector& acceleration, int number, Color color, int size, int life_time)
+{
+ add_object(new Particles(epicenter, velocity, acceleration, number, color, size, life_time));
+ return true;
+}
+
/* Break a brick: */
bool
Sector::trybreakbrick(const Vector& pos, bool small)
counting_distros = false;
solids->change_at(pos, tile->next_tile);
}
-
+
SoundManager::get()->play_sound(IDToSound(SND_DISTRO));
- player_status.score = player_status.score + SCORE_DISTRO;
+ global_stats.add_points(SCORE_STAT, SCORE_DISTRO);
player_status.distros++;
return true;
}
/* Get some score: */
SoundManager::get()->play_sound(IDToSound(SND_BRICK));
- player_status.score = player_status.score + SCORE_BRICK;
+ global_stats.add_points(SCORE_STAT, SCORE_BRICK);
return true;
}
case 1: // Box with a distro!
add_bouncy_distro(Vector(posx, posy));
SoundManager::get()->play_sound(IDToSound(SND_DISTRO));
- player_status.score = player_status.score + SCORE_DISTRO;
+ global_stats.add_points(SCORE_STAT, SCORE_DISTRO);
player_status.distros++;
break;
(int)(pos.y / 32) * 32));
}
- player_status.score = player_status.score + SCORE_DISTRO;
+ global_stats.add_points(SCORE_STAT, SCORE_DISTRO);
player_status.distros++;
}