[Super-tux-commit] supertux/src/object block.cpp,1.6,1.7 block.h,1.2,1.3
Brought to you by:
wkendrick
From: Matze B. <mat...@us...> - 2004-11-29 00:12:35
|
Update of /cvsroot/super-tux/supertux/src/object In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6159/src/object Modified Files: block.cpp block.h Log Message: make badguys bounce of each other again, make bombs and kicked mriceblocks kill other enemies, make kicked mriceblock open bonusblocks and destroy bricks Index: block.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/object/block.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- block.h 22 Nov 2004 23:47:51 -0000 1.2 +++ block.h 29 Nov 2004 00:12:25 -0000 1.3 @@ -36,6 +36,8 @@ public: BonusBlock(const Vector& pos, int data); + void try_open(); + protected: virtual void hit(Player& player); @@ -48,6 +50,8 @@ public: Brick(const Vector& pos, int data); + void try_break(bool playerhit = false); + protected: virtual void hit(Player& player); Index: block.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/object/block.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- block.cpp 24 Nov 2004 23:10:05 -0000 1.6 +++ block.cpp 29 Nov 2004 00:12:25 -0000 1.7 @@ -101,7 +101,13 @@ } void -BonusBlock::hit(Player& player) +BonusBlock::hit(Player& ) +{ + try_open(); +} + +void +BonusBlock::try_open() { if(sprite->get_action_name() == "empty") { SoundManager::get()->play_sound(IDToSound(SND_BRICK)); @@ -109,6 +115,7 @@ } Sector* sector = Sector::current(); + Player& player = *(sector->player); switch(data) { case 1: // coin Sector::current()->add_object(new BouncyCoin(get_pos())); @@ -170,13 +177,23 @@ } void -Brick::hit(Player& player) +Brick::hit(Player& ) +{ + if(sprite->get_action_name() == "empty") + return; + + try_break(true); +} + +void +Brick::try_break(bool playerhit) { if(sprite->get_action_name() == "empty") return; SoundManager::get()->play_sound(IDToSound(SND_BRICK)); Sector* sector = Sector::current(); + Player& player = *(sector->player); if(coin_counter > 0) { sector->add_object(new BouncyCoin(get_pos())); coin_counter--; @@ -185,7 +202,7 @@ sprite->set_action("empty"); start_bounce(); } else if(breakable) { - if(player.size == SMALL) { + if(playerhit && player.size == SMALL) { start_bounce(); return; } |