char *mn;
const char *mn;
mon_hit(monster)	object *monster;{	short damage, hit_chance;	char *mn;	float minus;	if (fight_monster && (monster != fight_monster)) {		fight_monster = 0;	}	monster->trow = NO_ROOM;	if (cur_level >= (AMULET_LEVEL * 2)) {		hit_chance = 100;	} else {		hit_chance = monster->m_hit_chance;		hit_chance -= (((2 * rogue.exp) + (2 * ring_exp)) - r_rings);	}	if (wizard) {		hit_chance /= 2;	}	if (!fight_monster) {		interrupted = 1;	}	mn = mon_name(monster);	if (!rand_percent(hit_chance)) {		if (!fight_monster) {			messagef(1, "%sthe %s misses", hit_message, mn);			hit_message[0] = 0;		}		return;	}	if (!fight_monster) {		messagef(1, "%sthe %s hit", hit_message, mn);		hit_message[0] = 0;	}	if (!(monster->m_flags & STATIONARY)) {		damage = get_damage(monster->m_damage, 1);		if (cur_level >= (AMULET_LEVEL * 2)) {			minus = (float) ((AMULET_LEVEL * 2) - cur_level);		} else {			minus = (float) get_armor_class(rogue.armor) * 3.00;			minus = minus/100.00 * (float) damage;		}		damage -= (short) minus;	} else {		damage = monster->stationary_damage++;	}	if (wizard) {		damage /= 3;	}	if (damage > 0) {		rogue_damage(damage, monster, 0);	}	if (monster->m_flags & SPECIAL_HIT) {		special_hit(monster);	}}