projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Moved some sprites from LAYER_OBJECTS to LAYER_FLOATINGOBJECTS
[supertux.git]
/
src
/
badguy
/
bomb.cpp
diff --git
a/src/badguy/bomb.cpp
b/src/badguy/bomb.cpp
index
848e62d
..
ac8491f
100644
(file)
--- a/
src/badguy/bomb.cpp
+++ b/
src/badguy/bomb.cpp
@@
-1,7
+1,7
@@
// $Id$
// $Id$
-//
+//
// SuperTux
// SuperTux
-// Copyright (C) 200
5
Matthias Braun <matze@braunis.de>
+// Copyright (C) 200
6
Matthias Braun <matze@braunis.de>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
@@
-12,15
+12,14
@@
// 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.
// 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
// 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.
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <config.h>
#include <config.h>
-#include "bomb.h"
+#include "bomb.h
pp
"
static const float TICKINGTIME = 1;
static const float EXPLOSIONTIME = 1;
static const float TICKINGTIME = 1;
static const float EXPLOSIONTIME = 1;
@@
-30,12
+29,14
@@
Bomb::Bomb(const Vector& pos, Direction dir)
start_position = pos;
bbox.set_pos(pos);
bbox.set_size(31.8, 31.8);
start_position = pos;
bbox.set_pos(pos);
bbox.set_size(31.8, 31.8);
- sprite = sprite_manager->create("
bomb
");
- state =
0
;
+ sprite = sprite_manager->create("
images/creatures/mr_bomb/bomb.sprite
");
+ state =
STATE_TICKING
;
timer.start(TICKINGTIME);
this->dir = dir;
sprite->set_action(dir == LEFT ? "ticking-left" : "ticking-right");
countMe = false;
timer.start(TICKINGTIME);
this->dir = dir;
sprite->set_action(dir == LEFT ? "ticking-left" : "ticking-right");
countMe = false;
+
+ set_group(COLGROUP_TOUCHABLE);
}
void
}
void
@@
-56,7
+57,7
@@
Bomb::collision_solid(GameObject& , const CollisionHit& hit)
HitResponse
Bomb::collision_player(Player& player, const CollisionHit& )
{
HitResponse
Bomb::collision_player(Player& player, const CollisionHit& )
{
- if(state ==
1
) {
+ if(state ==
STATE_EXPLODING
) {
player.kill(Player::SHRINK);
}
return ABORT_MOVE;
player.kill(Player::SHRINK);
}
return ABORT_MOVE;
@@
-65,7
+66,7
@@
Bomb::collision_player(Player& player, const CollisionHit& )
HitResponse
Bomb::collision_badguy(BadGuy& badguy, const CollisionHit& )
{
HitResponse
Bomb::collision_badguy(BadGuy& badguy, const CollisionHit& )
{
- if(state ==
1
)
+ if(state ==
STATE_EXPLODING
)
badguy.kill_fall();
return ABORT_MOVE;
}
badguy.kill_fall();
return ABORT_MOVE;
}
@@
-74,12
+75,12
@@
void
Bomb::active_update(float )
{
switch(state) {
Bomb::active_update(float )
{
switch(state) {
- case
0
:
+ case
STATE_TICKING
:
if(timer.check()) {
explode();
}
break;
if(timer.check()) {
explode();
}
break;
- case
1
:
+ case
STATE_EXPLODING
:
if(timer.check()) {
remove_me();
}
if(timer.check()) {
remove_me();
}
@@
-90,17
+91,17
@@
Bomb::active_update(float )
void
Bomb::explode()
{
void
Bomb::explode()
{
- state = 1;
+ state = STATE_EXPLODING;
+ set_group(COLGROUP_TOUCHABLE);
sprite->set_action("explosion");
sprite->set_action("explosion");
- sound_manager->play_sound("explosion", get_pos(),
- Sector::current()->player->get_pos());
+ sound_manager->play("sounds/explosion.wav", get_pos());
timer.start(EXPLOSIONTIME);
}
void
Bomb::kill_fall()
{
timer.start(EXPLOSIONTIME);
}
void
Bomb::kill_fall()
{
- if (state !=
1
) // we don't want it exploding again
+ if (state !=
STATE_EXPLODING
) // we don't want it exploding again
explode();
}
explode();
}