Changed collision code, we now have several collision groups:
[supertux.git] / src / badguy / badguy.cpp
index 700904e..91b4bc9 100644 (file)
@@ -100,6 +100,12 @@ BadGuy::deactivate()
 }
 
 void
+BadGuy::save(lisp::Writer& )
+{
+       std::cout << "Warning: tried to write out a generic badguy." << std::endl;
+}
+
+void
 BadGuy::active_update(float elapsed_time)
 {
   movement = physic.get_movement(elapsed_time);
@@ -223,7 +229,7 @@ BadGuy::set_state(State state)
       state_timer.start(SQUISH_TIME);
       break;
     case STATE_ACTIVE:
-      flags &= ~FLAG_NO_COLLDET;
+      set_group(COLGROUP_MOVING);
       bbox.set_pos(start_position);
       break;
     case STATE_INACTIVE:
@@ -231,10 +237,10 @@ BadGuy::set_state(State state)
       if(laststate == STATE_SQUISHED || laststate == STATE_FALLING) {
         remove_me();
       }
-      flags |= FLAG_NO_COLLDET;
+      set_group(COLGROUP_DISABLED);
       break;
     case STATE_FALLING:
-      flags |= FLAG_NO_COLLDET;
+      set_group(COLGROUP_DISABLED);
       break;
     default:
       break;