projects
/
supertux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
75acd4b
)
Use run_dead_script wherever possible and make kill_* operations only do stuff once
author
Mathnerd314
<man.is.allan@gmail.com>
Sat, 14 Nov 2009 13:49:09 +0000
(13:49 +0000)
committer
Mathnerd314
<man.is.allan@gmail.com>
Sat, 14 Nov 2009 13:49:09 +0000
(13:49 +0000)
SVN-Revision: 5935
src/badguy/badguy.cpp
patch
|
blob
|
history
src/badguy/bomb.cpp
patch
|
blob
|
history
src/badguy/kamikazesnowball.cpp
patch
|
blob
|
history
src/badguy/kugelblitz.cpp
patch
|
blob
|
history
src/badguy/mole.cpp
patch
|
blob
|
history
src/badguy/mrbomb.cpp
patch
|
blob
|
history
src/badguy/mrtree.cpp
patch
|
blob
|
history
src/badguy/root.cpp
patch
|
blob
|
history
src/badguy/yeti.cpp
patch
|
blob
|
history
diff --git
a/src/badguy/badguy.cpp
b/src/badguy/badguy.cpp
index
7aec6dc
..
2fbacae
100644
(file)
--- a/
src/badguy/badguy.cpp
+++ b/
src/badguy/badguy.cpp
@@
-337,39
+337,33
@@
BadGuy::kill_squished(GameObject& object)
set_group(COLGROUP_MOVING_ONLY_STATIC);
Player* player = dynamic_cast<Player*>(&object);
if (player) {
set_group(COLGROUP_MOVING_ONLY_STATIC);
Player* player = dynamic_cast<Player*>(&object);
if (player) {
- if (countMe) Sector::current()->get_level()->stats.badguys++;
player->bounce(*this);
}
// start dead-script
player->bounce(*this);
}
// start dead-script
- if(dead_script != "") {
- std::istringstream stream(dead_script);
- Sector::current()->run_script(stream, "dead-script");
- }
+ run_dead_script();
}
void
BadGuy::kill_fall()
{
sound_manager->play("sounds/fall.wav", get_pos());
}
void
BadGuy::kill_fall()
{
sound_manager->play("sounds/fall.wav", get_pos());
- if (countMe) Sector::current()->get_level()->stats.badguys++;
physic.set_velocity_y(0);
physic.set_acceleration_y(0);
physic.enable_gravity(true);
set_state(STATE_FALLING);
// start dead-script
physic.set_velocity_y(0);
physic.set_acceleration_y(0);
physic.enable_gravity(true);
set_state(STATE_FALLING);
// start dead-script
- if(dead_script != "") {
- std::istringstream stream(dead_script);
- Sector::current()->run_script(stream, "dead-script");
- }
+ run_dead_script();
}
void
BadGuy::run_dead_script()
{
}
void
BadGuy::run_dead_script()
{
-
if (countMe)
+ if (countMe)
Sector::current()->get_level()->stats.badguys++;
Sector::current()->get_level()->stats.badguys++;
+
+ countMe = false;
// start dead-script
if(dead_script != "") {
// start dead-script
if(dead_script != "") {
diff --git
a/src/badguy/bomb.cpp
b/src/badguy/bomb.cpp
index
940dde8
..
55e630f
100644
(file)
--- a/
src/badguy/bomb.cpp
+++ b/
src/badguy/bomb.cpp
@@
-110,9
+110,11
@@
Bomb::explode()
player->stop_grabbing();
}
player->stop_grabbing();
}
- remove_me();
- Explosion* explosion = new Explosion(get_bbox().get_middle());
- Sector::current()->add_object(explosion);
+ if(is_valid()) {
+ remove_me();
+ Explosion* explosion = new Explosion(get_bbox().get_middle());
+ Sector::current()->add_object(explosion);
+ }
run_dead_script();
}
run_dead_script();
}
diff --git
a/src/badguy/kamikazesnowball.cpp
b/src/badguy/kamikazesnowball.cpp
index
b9cf34f
..
643d252
100644
(file)
--- a/
src/badguy/kamikazesnowball.cpp
+++ b/
src/badguy/kamikazesnowball.cpp
@@
-81,6
+81,8
@@
KamikazeSnowball::kill_collision()
physic.set_velocity_y(0);
physic.enable_gravity(true);
set_state(STATE_FALLING);
physic.set_velocity_y(0);
physic.enable_gravity(true);
set_state(STATE_FALLING);
+
+ run_dead_script();
}
HitResponse
}
HitResponse
diff --git
a/src/badguy/kugelblitz.cpp
b/src/badguy/kugelblitz.cpp
index
28c3ae0
..
8065639
100644
(file)
--- a/
src/badguy/kugelblitz.cpp
+++ b/
src/badguy/kugelblitz.cpp
@@
-44,6
+44,7
@@
Kugelblitz::Kugelblitz(const lisp::Lisp& reader)
reader.get("x", start_position.x);
sprite->set_action("falling");
physic.enable_gravity(false);
reader.get("x", start_position.x);
sprite->set_action("falling");
physic.enable_gravity(false);
+ countMe = false;
}
void
}
void
diff --git
a/src/badguy/mole.cpp
b/src/badguy/mole.cpp
index
17716cb
..
6a14b0f
100644
(file)
--- a/
src/badguy/mole.cpp
+++ b/
src/badguy/mole.cpp
@@
-77,7
+77,7
@@
Mole::kill_fall()
{
set_state(DEAD);
sound_manager->play("sounds/fall.wav", get_pos());
{
set_state(DEAD);
sound_manager->play("sounds/fall.wav", get_pos());
-
if (countMe) Sector::current()->get_level()->stats.badguys++
;
+
run_dead_script()
;
}
HitResponse
}
HitResponse
@@
-91,7
+91,7
@@
Mole::collision_squished(GameObject& )
{
set_state(DEAD);
sound_manager->play("sounds/squish.wav", get_pos());
{
set_state(DEAD);
sound_manager->play("sounds/squish.wav", get_pos());
-
if (countMe) Sector::current()->get_level()->stats.badguys++
;
+
run_dead_script()
;
return true;
}
return true;
}
diff --git
a/src/badguy/mrbomb.cpp
b/src/badguy/mrbomb.cpp
index
10b3da4
..
4b6e5e9
100644
(file)
--- a/
src/badguy/mrbomb.cpp
+++ b/
src/badguy/mrbomb.cpp
@@
-89,8
+89,10
@@
MrBomb::collision_player(Player& player, const CollisionHit& hit)
bool
MrBomb::collision_squished(GameObject& object)
{
bool
MrBomb::collision_squished(GameObject& object)
{
- remove_me();
- Sector::current()->add_object(new Bomb(get_pos(), dir, sprite_name ));
+ if(is_valid()) {
+ remove_me();
+ Sector::current()->add_object(new Bomb(get_pos(), dir, sprite_name ));
+ }
kill_squished(object);
return true;
}
kill_squished(object);
return true;
}
@@
-106,9
+108,11
@@
MrBomb::active_update(float elapsed_time)
void
MrBomb::kill_fall()
{
void
MrBomb::kill_fall()
{
- remove_me();
- Explosion* explosion = new Explosion(get_bbox().get_middle());
- Sector::current()->add_object(explosion);
+ if(is_valid()) {
+ remove_me();
+ Explosion* explosion = new Explosion(get_bbox().get_middle());
+ Sector::current()->add_object(explosion);
+ }
run_dead_script();
}
run_dead_script();
}
diff --git
a/src/badguy/mrtree.cpp
b/src/badguy/mrtree.cpp
index
3828225
..
a79350b
100644
(file)
--- a/
src/badguy/mrtree.cpp
+++ b/
src/badguy/mrtree.cpp
@@
-90,6
+90,7
@@
MrTree::collision_squished(GameObject& object)
if (Sector::current()->is_free_of_movingstatics(leaf1_bbox, this)) {
PoisonIvy* leaf1 = new PoisonIvy(leaf1_bbox.p1, LEFT);
leaf1 = leaf1;
if (Sector::current()->is_free_of_movingstatics(leaf1_bbox, this)) {
PoisonIvy* leaf1 = new PoisonIvy(leaf1_bbox.p1, LEFT);
leaf1 = leaf1;
+ leaf1->countMe = false;
Sector::current()->add_object(leaf1);
}
Sector::current()->add_object(leaf1);
}
@@
-99,6
+100,7
@@
MrTree::collision_squished(GameObject& object)
if (Sector::current()->is_free_of_movingstatics(leaf2_bbox, this)) {
PoisonIvy* leaf2 = new PoisonIvy(leaf2_bbox.p1, RIGHT);
leaf2 = leaf2;
if (Sector::current()->is_free_of_movingstatics(leaf2_bbox, this)) {
PoisonIvy* leaf2 = new PoisonIvy(leaf2_bbox.p1, RIGHT);
leaf2 = leaf2;
+ leaf2->countMe = false;
Sector::current()->add_object(leaf2);
}
Sector::current()->add_object(leaf2);
}
diff --git
a/src/badguy/root.cpp
b/src/badguy/root.cpp
index
5d32120
..
0eb29c7
100644
(file)
--- a/
src/badguy/root.cpp
+++ b/
src/badguy/root.cpp
@@
-46,7
+46,8
@@
Root::~Root()
void
Root::deactivate()
{
void
Root::deactivate()
{
- remove_me();
+ remove_me();
+ //no dead script
}
void
}
void
diff --git
a/src/badguy/yeti.cpp
b/src/badguy/yeti.cpp
index
4ad1507
..
f6cc57a
100644
(file)
--- a/
src/badguy/yeti.cpp
+++ b/
src/badguy/yeti.cpp
@@
-230,12
+230,7
@@
void Yeti::take_hit(Player& )
set_colgroup_active(COLGROUP_MOVING_ONLY_STATIC);
sprite->set_action("dead");
set_colgroup_active(COLGROUP_MOVING_ONLY_STATIC);
sprite->set_action("dead");
- if (countMe) Sector::current()->get_level()->stats.badguys++;
-
- if(dead_script != "") {
- std::istringstream stream(dead_script);
- Sector::current()->run_script(stream, "Yeti - dead-script");
- }
+ run_dead_script();
}
else {
safe_timer.start(SAFE_TIME);
}
else {
safe_timer.start(SAFE_TIME);