/* Free reinc */

resolve(bonus, target, god,arg) {
   object ob,obje;
   int effect, exp,i,i2,modifier, worth;
   string totals, tmp;

   if (!target) { write("Reincarnate whom?\n"); return; }
   ob = find_player(lower_case(target));
   if (!ob) { write("No such a player.\n"); return 1; }
   if (!ob->query_dead() && !arg) {
	write(capitalize(target) + " is not dead.\n");
	return 1;
   }
   if (!present("reinc_from_"+this_player()->query_real_name(),ob)) {
     write(ob->query_name()+" has not accepted reincarnation from you.\n");
   }
   if (ob->query_free_exp() != "0" && ob->query_free_exp() != 0) {
	write(capitalize(ob->query_real_name())+" has free experience, he"+
		"can't be reincarnated.\n");
	return 1;
   }
   write("You reincarnate " + capitalize(target) + ".\n");
   tell_object(ob, this_player()->query_name()+" reincarnated you.\n");
   log_file("REINC_LOG", capitalize(target)+" reinced by "+
		this_player()->query_name()+" ("+effect+") ");

   if(!arg) write("You see "+capitalize(ob->query_real_name())+"'s life flashing in"+
	" front of you eyes and catch a part of his experiences.\n");
   if(!arg) write("You receive "+exp+" experince points.\n");

   obje = all_inventory(ob);
   while(i2<sizeof(obje)) {
      if(obje[i2] && obje[i2]->short()) { destruct(obje[i2]); }
      i2 += 1;
   }
   if(!arg) { 
     log_file("REINC_LOG", this_player()->query_name()+" got "+
	exp+" exp for reincing "+ob->query_name()+" (cost:"+i+"), "+
	modifier+".\n");
   }
   ob->remove_ghost(100, "/obj/race_selection");
   ob->reinc();
}

