#pragma save_types mapping reps=([]); void set_reputation(string person,string rep,int value) { reps[person][rep]=value; } int query_reputation(string person,string rep) { return reps[person][rep]; } int add_reputation(string person,string rep,int value) { return reps[person][rep]+=value; } void hear_info(string person,string rep,int value) { int c; c=reps[previous_object()->query_real_name()]["credibility"]; c=reps[person][rep]*(100-c)+value*credibility; reps[person][rep]=c/100; } void exchange_reputation(object with,string person,string rep) { with->hear_info(person,rep,reps[person][rep]); } void talk_about(object with,string person) { string o; if(!reps[person]) return; foreach(m_indices(reps[person]),o) exchange_reputation(with,person,o); } void smalltalk_with(object o) { int e; if(!m_sizeof(reps)) return; talk_about(o,m_indices(reps)[random(m_sizeof(reps))]); }