- switch (state) {
-
- case STATE_NORMAL:
- if ((hit.normal.y >= 0.8 ) && (dynamic_cast<Player*>(&other))) {
- state = STATE_CRUMBLING;
- sprite->set_action("crumbling", 1);
- return FORCE_MOVE;
- }
- return FORCE_MOVE;
- break;
-
- case STATE_CRUMBLING:
- return FORCE_MOVE;
- break;
-
- case STATE_DISINTEGRATING:
- return FORCE_MOVE;
- break;
-
+ if(state == STATE_NORMAL) {
+ Player* player = dynamic_cast<Player*> (&other);
+ if(player != NULL &&
+ player->get_bbox().get_bottom() < get_bbox().get_top() + SHIFT_DELTA) {
+ state = STATE_CRUMBLING;
+ sprite->set_action("crumbling", 1);
+ }