I got these freezes more than a month ago, and they are still present, so it looks like nobody is trying to fix it.
Picture related - - here you can see the content of monster’s fields. After reset() monster gets incredible amount of “move”, and its processing lasts forever.
Actually, all “monster”'s fields are correct, only its Creature’s fields are corrupted. This happens when you push_back() monster to Creature_tracker._old_monsters_list - it calls monster’s copy-constructor (which is implicitly-declared and compiler-provided) and also calls Creature’s copy-constructor which is explicitly-declared and (almost) empty, so it does not initialize any useful fields on Creature’s creation.
Could someone please fill this explicit copy-constructor?
BTW, why do you use vector of objects instead of vector of pointers?