void spell_bless(byte level, struct char_data *ch,		void spell_bless(byte level, struct char_data *ch,
  struct char_data *victim, struct obj_data *obj)		  struct char_data *victim, struct obj_data *obj)
{								{
  struct affected_type af;					  struct affected_type af;

  assert(ch && (victim || obj));			      |	  if(ch && (victim || obj)){
    assert((level >= 0) && (level <= 50));		      <

  if (obj) {						      |	    if (obj) {
    if ( (5*GET_LEVEL(ch) > GET_OBJ_WEIGHT(obj)) &&	      |	      if ( (5*GET_LEVEL(ch) > GET_OBJ_WEIGHT(obj)) &&
    (GET_POS(ch) != POSITION_FIGHTING) &&		      |		(GET_POS(ch) != POSITION_FIGHTING) &&
    !IS_OBJ_STAT(obj, ITEM_EVIL)) {			      |		!IS_OBJ_STAT(obj, ITEM_EVIL)) {
      SET_BIT(obj->obj_flags.extra_flags, ITEM_BLESS);	      |		  SET_BIT(obj->obj_flags.extra_flags, ITEM_BLESS);
      act("$p briefly glows.",FALSE,ch,obj,0,TO_CHAR);	      |		  act("$p briefly glows.",FALSE,ch,obj,0,TO_CHAR);
    }							      |	      }
  } else {						      |	    } else {
							      >	      if(!victim)return;
							      >	      if (affected_by_spell(victim, SPELL_BLESS))
							      >		affect_from_char(victim, SPELL_BLESS);

    if ((GET_POS(victim) != POSITION_FIGHTING) &&	      <
    (!affected_by_spell(victim, SPELL_BLESS))) {	      <
      							      <
      send_to_char("You feel righteous.\n\r", victim);		      send_to_char("You feel righteous.\n\r", victim);
      af.type      = SPELL_BLESS;				      af.type      = SPELL_BLESS;
      af.duration  = 6+level;					      af.duration  = 6+level;
      af.modifier  = 1;					      |	      af.modifier  = 5;
      af.location  = APPLY_HITROLL;				      af.location  = APPLY_HITROLL;
      af.bitvector = 0;						      af.bitvector = 0;
      affect_to_char(victim, &af);				      affect_to_char(victim, &af);
      								      
      af.location = APPLY_SAVING_SPELL;				      af.location = APPLY_SAVING_SPELL;
      af.modifier = -1;                 /* Make better */	      af.modifier = -1;                 /* Make better */
      affect_to_char(victim, &af);				      affect_to_char(victim, &af);
    }								    }
  }								  }
}								}

