bbox.set_size(31.8, 31.8);
sprite = sprite_manager->create("rock");
grabbed = false;
- flags |= FLAG_SOLID;
+ flags |= FLAG_SOLID | FLAG_PORTABLE;
}
Rock::~Rock()
void
Rock::draw(DrawingContext& context)
{
-
sprite->draw(context, get_pos(), LAYER_OBJECTS);
}
{
if(!grabbed) {
flags |= FLAG_SOLID;
- set_group(COLGROUP_STATIC);
+ set_group(COLGROUP_MOVING);
movement = physic.get_movement(elapsed_time);
} else {
physic.set_velocity(0, 0);
HitResponse
Rock::collision(GameObject& object, const CollisionHit& )
{
- if(grabbed)
+ if(grabbed) {
return FORCE_MOVE;
+ }
if(object.get_flags() & FLAG_SOLID) {
- physic.set_velocity(0, 0);
- return CONTINUE;
+ physic.set_velocity(0, 0);
+ return CONTINUE;
}
return FORCE_MOVE;
}
void
-Rock::grab(MovingObject& , const Vector& pos)
+Rock::grab(MovingObject& , const Vector& pos, Direction)
{
movement = pos - get_pos();
grabbed = true;