ControllerFactory Player::getFactory(View* f, Model *m, map<Level*, MapMemory>* levelMemory) { return ControllerFactory([=](Creature* c) { return new Player(c, f, m, true, levelMemory);}); }
ControllerFactory Monster::getFactory(MonsterAIFactory f) { return ControllerFactory([=](Creature* c) { return new Monster(c, f); }); }