- if(state != STALACTITE_FALLING && state != STALACTITE_SQUISHED)
- return FORCE_MOVE;
-
- if(fabsf(hit.normal.y) > .5) { // hit floor or roof?
- state = STALACTITE_SQUISHED;
+ state = STALACTITE_SQUISHED;
+ set_colgroup_active(COLGROUP_MOVING_ONLY_STATIC);
+ sprite->set_action("squished");
+ if(!timer.started())
+ timer.start(SQUISH_TIME);
+}
+
+void
+Stalactite::collision_solid(const CollisionHit& hit)
+{
+ if(state == STALACTITE_FALLING) {
+ if (hit.bottom) squish();
+ }
+ if(state == STALACTITE_SQUISHED) {