IC T *CScriptGameObject::action_planner() { CAI_Stalker *manager = smart_cast<CAI_Stalker*>(&object()); if (!manager) ai().script_engine().script_log (ScriptStorage::eLuaMessageTypeError,"CAI_Stalker : cannot access class member action_planner!"); return (&manager->brain()); }
void CScriptGameObject::set_mental_state (EMentalState mental_state) { CAI_Stalker *stalker = smart_cast<CAI_Stalker*>(&object()); if (!stalker) ai().script_engine().script_log (ScriptStorage::eLuaMessageTypeError,"CAI_Stalker : cannot access class member movement!"); else { #ifdef DEBUG if (mental_state != eMentalStateDanger) { if (stalker->brain().current_action_id() == StalkerDecisionSpace::eWorldOperatorCombatPlanner) { ai().script_engine().script_log (ScriptStorage::eLuaMessageTypeError,"CAI_Stalker : set_mental_state is used during universal combat!"); return; } } #endif // DEBUG stalker->movement().set_mental_state (mental_state); } }
void CScriptGameObject::set_dest_level_vertex_id(u32 level_vertex_id) { CAI_Stalker *stalker = smart_cast<CAI_Stalker*>(&object()); if (!stalker) ai().script_engine().script_log (ScriptStorage::eLuaMessageTypeError,"CAI_Stalker : cannot access class member set_dest_level_vertex_id!"); else { if (!ai().level_graph().valid_vertex_id(level_vertex_id)) { #ifdef DEBUG ai().script_engine().script_log (ScriptStorage::eLuaMessageTypeError,"CAI_Stalker : invalid vertex id being setup by action %s!",stalker->brain().CStalkerPlanner::current_action().m_action_name); #endif return; } THROW2 (stalker->movement().restrictions().accessible(level_vertex_id),*stalker->cName()); stalker->movement().set_level_dest_vertex (level_vertex_id); } }