projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rewrote Yeti to rely on position instead of ellapsed time
[supertux.git]
/
src
/
object
/
block.cpp
diff --git
a/src/object/block.cpp
b/src/object/block.cpp
index
dd2e11c
..
6d0c5f4
100644
(file)
--- a/
src/object/block.cpp
+++ b/
src/object/block.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,14
+12,15
@@
// 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 "block.hpp"
#include <config.h>
#include "block.hpp"
+#include "log.hpp"
#include <stdexcept>
#include <stdexcept>
@@
-51,6
+52,7
@@
Block::Block(Sprite* newsprite)
: sprite(newsprite), bouncing(false), bounce_dir(0), bounce_offset(0)
{
bbox.set_size(32, 32.1);
: sprite(newsprite), bouncing(false), bounce_dir(0), bounce_offset(0)
{
bbox.set_size(32, 32.1);
+ set_group(COLGROUP_STATIC);
flags |= FLAG_SOLID;
}
flags |= FLAG_SOLID;
}
@@
-121,7
+123,7
@@
Block::start_bounce()
//---------------------------------------------------------------------------
BonusBlock::BonusBlock(const Vector& pos, int data)
//---------------------------------------------------------------------------
BonusBlock::BonusBlock(const Vector& pos, int data)
- : Block(sprite_manager->create("
bonusblock
")), object(0)
+ : Block(sprite_manager->create("
images/objects/bonus_block/bonusblock.sprite
")), object(0)
{
bbox.set_pos(pos);
sprite->set_action("normal");
{
bbox.set_pos(pos);
sprite->set_action("normal");
@@
-132,14
+134,14
@@
BonusBlock::BonusBlock(const Vector& pos, int data)
case 4: contents = CONTENT_1UP; break;
case 5: contents = CONTENT_ICEGROW; break;
default:
case 4: contents = CONTENT_1UP; break;
case 5: contents = CONTENT_ICEGROW; break;
default:
-
std::cerr << "Invalid box contents!\n"
;
+
log_warning << "Invalid box contents" << std::endl
;
contents = CONTENT_COIN;
break;
}
}
BonusBlock::BonusBlock(const lisp::Lisp& lisp)
contents = CONTENT_COIN;
break;
}
}
BonusBlock::BonusBlock(const lisp::Lisp& lisp)
- : Block(sprite_manager->create("
bonusblock
"))
+ : Block(sprite_manager->create("
images/objects/bonus_block/bonusblock.sprite
"))
{
Vector pos;
{
Vector pos;
@@
-167,7
+169,7
@@
BonusBlock::BonusBlock(const lisp::Lisp& lisp)
} else if(contentstring == "custom") {
contents = CONTENT_CUSTOM;
} else {
} else if(contentstring == "custom") {
contents = CONTENT_CUSTOM;
} else {
-
std::cerr << "Invalid box contents '" << contentstring << "'.\n"
;
+
log_warning << "Invalid box contents '" << contentstring << "'" << std::endl
;
}
} else {
if(contents == CONTENT_CUSTOM) {
}
} else {
if(contents == CONTENT_CUSTOM) {
@@
-177,7
+179,7
@@
BonusBlock::BonusBlock(const lisp::Lisp& lisp)
throw std::runtime_error(
"Only MovingObjects are allowed inside BonusBlocks");
} else {
throw std::runtime_error(
"Only MovingObjects are allowed inside BonusBlocks");
} else {
-
std::cerr << "Invalid element '" << token << "' in bonusblock.\n"
;
+
log_warning << "Invalid element '" << token << "' in bonusblock" << std::endl
;
}
}
}
}
}
}
@@
-202,8
+204,8
@@
BonusBlock::hit(Player& )
void
BonusBlock::try_open()
{
void
BonusBlock::try_open()
{
- if(sprite->get_action
_name
() == "empty") {
- sound_manager->play("sounds/brick.
ogg
");
+ if(sprite->get_action() == "empty") {
+ sound_manager->play("sounds/brick.
wav
");
return;
}
return;
}
@@
-212,7
+214,7
@@
BonusBlock::try_open()
switch(contents) {
case CONTENT_COIN:
Sector::current()->add_object(new BouncyCoin(get_pos()));
switch(contents) {
case CONTENT_COIN:
Sector::current()->add_object(new BouncyCoin(get_pos()));
- player.get_status()->
incCoins(
);
+ player.get_status()->
add_coins(1
);
break;
case CONTENT_FIREGROW:
break;
case CONTENT_FIREGROW:
@@
-224,7
+226,7
@@
BonusBlock::try_open()
get_pos(), new Flower(Flower::FIREFLOWER));
sector->add_object(riser);
}
get_pos(), new Flower(Flower::FIREFLOWER));
sector->add_object(riser);
}
- sound_manager->play("sounds/upgrade.
ogg
");
+ sound_manager->play("sounds/upgrade.
wav
");
break;
case CONTENT_ICEGROW:
break;
case CONTENT_ICEGROW:
@@
-236,7
+238,7
@@
BonusBlock::try_open()
get_pos(), new Flower(Flower::ICEFLOWER));
sector->add_object(riser);
}
get_pos(), new Flower(Flower::ICEFLOWER));
sector->add_object(riser);
}
- sound_manager->play("sounds/upgrade.
ogg
");
+ sound_manager->play("sounds/upgrade.
wav
");
break;
case CONTENT_STAR:
break;
case CONTENT_STAR:
@@
-251,7
+253,7
@@
BonusBlock::try_open()
SpecialRiser* riser = new SpecialRiser(get_pos(), object);
object = 0;
sector->add_object(riser);
SpecialRiser* riser = new SpecialRiser(get_pos(), object);
object = 0;
sector->add_object(riser);
- sound_manager->play("sounds/upgrade.
ogg
");
+ sound_manager->play("sounds/upgrade.
wav
");
break;
//default:
break;
//default:
@@
-267,7
+269,7
@@
IMPLEMENT_FACTORY(BonusBlock, "bonusblock");
//---------------------------------------------------------------------------
Brick::Brick(const Vector& pos, int data)
//---------------------------------------------------------------------------
Brick::Brick(const Vector& pos, int data)
- : Block(sprite_manager->create("
brick
")), breakable(false),
+ : Block(sprite_manager->create("
images/objects/bonus_block/brick.sprite
")), breakable(false),
coin_counter(0)
{
bbox.set_pos(pos);
coin_counter(0)
{
bbox.set_pos(pos);
@@
-280,7
+282,7
@@
Brick::Brick(const Vector& pos, int data)
void
Brick::hit(Player& )
{
void
Brick::hit(Player& )
{
- if(sprite->get_action
_name
() == "empty")
+ if(sprite->get_action() == "empty")
return;
try_break(true);
return;
try_break(true);
@@
-289,16
+291,16
@@
Brick::hit(Player& )
void
Brick::try_break(bool playerhit)
{
void
Brick::try_break(bool playerhit)
{
- if(sprite->get_action
_name
() == "empty")
+ if(sprite->get_action() == "empty")
return;
return;
- sound_manager->play("sounds/brick.
ogg
");
+ sound_manager->play("sounds/brick.
wav
");
Sector* sector = Sector::current();
Player& player = *(sector->player);
if(coin_counter > 0) {
sector->add_object(new BouncyCoin(get_pos()));
coin_counter--;
Sector* sector = Sector::current();
Player& player = *(sector->player);
if(coin_counter > 0) {
sector->add_object(new BouncyCoin(get_pos()));
coin_counter--;
- player.get_status()->
incCoins(
);
+ player.get_status()->
add_coins(1
);
if(coin_counter == 0)
sprite->set_action("empty");
start_bounce();
if(coin_counter == 0)
sprite->set_action("empty");
start_bounce();