void CStalkerCombatPlanner::setup (CAI_Stalker *object, CPropertyStorage *storage) { inherited::setup (object,storage); #ifdef LOG_ACTION inherited_planner::m_use_log = true; inherited_action::m_use_log = true; #endif CScriptActionPlanner::m_storage.set_property(eWorldPropertyInCover, false); CScriptActionPlanner::m_storage.set_property(eWorldPropertyLookedOut, false); CScriptActionPlanner::m_storage.set_property(eWorldPropertyPositionHolded, false); CScriptActionPlanner::m_storage.set_property(eWorldPropertyEnemyDetoured, false); CScriptActionPlanner::m_storage.set_property(eWorldPropertyUseSuddenness, true); CScriptActionPlanner::m_storage.set_property(eWorldPropertyUseCrouchToLookOut, true); CScriptActionPlanner::m_storage.set_property(eWorldPropertyKilledWounded, false); CScriptActionPlanner::m_storage.set_property(eWorldPropertyStartedToThrowGrenade, false); this->object().brain().CStalkerPlanner::m_storage.set_property(eWorldPropertyCriticallyWounded, false); clear (); add_evaluators (); add_actions (); CAI_Stalker::on_best_cover_changed_delegate temp; temp.bind (this,&CStalkerCombatPlanner::on_best_cover_changed); this->object().subscribe_on_best_cover_changed (temp); object->movement().property_storage (storage); }
CStalkerCombatPlanner::~CStalkerCombatPlanner () { CAI_Stalker::on_best_cover_changed_delegate temp; temp.bind (this,&CStalkerCombatPlanner::on_best_cover_changed); object().unsubscribe_on_best_cover_changed (temp); }