From 12eb9d91e87f199df1e151e5e077b53c33b9d422 Mon Sep 17 00:00:00 2001 From: mathnerd314 Date: Sun, 7 Mar 2010 23:44:35 +0000 Subject: [PATCH] Pass player object in to BonusBlock rather than using Sector's global one. git-svn-id: http://supertux.lethargik.org/svn/supertux/trunk/supertux@6575 837edb03-e0f3-0310-88ca-d4d4e8b29345 --- src/object/bonus_block.cpp | 14 ++++++-------- src/object/bonus_block.hpp | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/object/bonus_block.cpp b/src/object/bonus_block.cpp index 9a4117516..2fb6bc8a7 100644 --- a/src/object/bonus_block.cpp +++ b/src/object/bonus_block.cpp @@ -114,9 +114,9 @@ BonusBlock::~BonusBlock() } void -BonusBlock::hit(Player& ) +BonusBlock::hit(Player & player) { - try_open(); + try_open(player); } HitResponse @@ -124,7 +124,7 @@ BonusBlock::collision(GameObject& other, const CollisionHit& hit){ Player* player = dynamic_cast (&other); if (player) { - if (player->does_buttjump) try_open(); + if (player->does_buttjump) try_open(*player); } BadGuy* badguy = dynamic_cast (&other); @@ -133,21 +133,21 @@ BonusBlock::collision(GameObject& other, const CollisionHit& hit){ // Badguy's bottom has to be below the top of the block // SHIFT_DELTA is required to slide over one tile gaps. if( badguy->can_break() && ( badguy->get_bbox().get_bottom() > get_bbox().get_top() + SHIFT_DELTA ) ){ - try_open(); + try_open(*player); } } Portable* portable = dynamic_cast (&other); if(portable) { MovingObject* moving = dynamic_cast (&other); if(moving->get_bbox().get_top() > get_bbox().get_bottom() - SHIFT_DELTA) { - try_open(); + try_open(*player); } } return Block::collision(other, hit); } void -BonusBlock::try_open() +BonusBlock::try_open(Player & player) { if(sprite->get_action() == "empty") { sound_manager->play("sounds/brick.wav"); @@ -156,8 +156,6 @@ BonusBlock::try_open() Sector* sector = Sector::current(); assert(sector); - assert(sector->player); - Player& player = *(sector->player); Direction direction = (player.get_bbox().get_middle().x > get_bbox().get_middle().x) ? LEFT : RIGHT; switch(contents) { diff --git a/src/object/bonus_block.hpp b/src/object/bonus_block.hpp index 98eb74780..47219293a 100644 --- a/src/object/bonus_block.hpp +++ b/src/object/bonus_block.hpp @@ -27,7 +27,7 @@ public: virtual ~BonusBlock(); HitResponse collision(GameObject& other, const CollisionHit& hit); - void try_open(); + void try_open(Player & player); enum Contents { CONTENT_COIN, -- 2.11.0