Effective, but not very satisfying. Now, when a character gets to zero health, I switch to the 'die' state, which right now randomly uses one of the 3 MD2 death animations, then switches to the 'dead' state permanently.
I had to add some more flags to the entity structure to handle some of these new concepts. For instance, I wanted corpses to be rendered instead of disappearing, and also to animate ( at least during the 'die' fall over state ), and I wanted them to still cast a shadow. Also, I wanted them to be uncollidable, so they don't prevent the player or other AIs from moving around the level.
So now, the entities separately know if they are sentient, a corpse, are collidable, and are mobile. I'm sure I'll add more as time goes on.
One decision I made a while ago, that I felt myself defending for some time has now proven its worth. I made a separate engine & editor. One reason this is good is b/c I don't have to try to make the engine carry around extra crap for the sake of the editor, but more importantly, it led to a nice separation of data with things like the entities.
For example, the editor has a class called 'EditorEntity', that contains only the aspects of an entity that are relevant to placing them in the level. Later on I will add initial state, etc., but things like the shadowing flags, or the current keyframe are not relevant to the editor, so are ommitted. Still other aspects are held in excel .csv files.
That way, as I add things to the entity class, I rarely have to rebuild my levels, or add versioning support to the EditorEntity class.