CleverRaven/Cataclysm-DDA — pull request #7648 by BevapDin (2014-05-15 13:19:46+00:00)
Title: Fix hallucination crash

Fixes #6729

The crash is reproducible:
Start game, get hallucinations, wait for hallucination monster to appear.
Save game, don't exit the program, instead reload the same game.
Wait for another hallucination monster to appear, game will crash than.

Thanks to the stack trace from @MattAmmann I found the reason:
`MonsterGenerator` has same static pointers to monster type objects (monsters that are usable as hallucination, ...), they became invalid when the game is saved, as all monster types are delete. When it is reloaded, the json data is reloaded, too. The `MonsterGenerator` will still use the old and stale pointers.

So I removed the static modifiers in `MonsterGenerator`.

----

Fixes #6706

When hallucinations disappear randomly, they call `monster::die` which calls `mdeath::disappear` which prints the message "monster x disappears!".

Later during that turn `game::cleanup_dead` calls `monster::die` again and the message appears again.

This is also easy to reproduce: get hallucinations and wait adjacent to a hostile hallucinated monster. It will attack your character (but not do any damage) and soon disappear with two messages (they even show up as "x 2" in the message log).

I replaced the calls to `monster::die` when a hallucination disappear with `monster::dead = true`, the disappear message is than disabled only once from `game::cleanup_dead`.