/*
 *	This generator set makes the name/ac and various
 *	other mundane stats about objects.
 *
 *	This one is for Armor
 */





#if defined(macintosh)
#include <types.h>
#else
#include <sys/types.h>
#endif
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "merc.h"
#include "interp.h"
#include "magic.h"
#include "recycle.h"
#include "tables.h"

OBJ_DATA * make_armor_cape	(OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_NECK_OVER;

	switch(range)
	{	default:
		case 1:
		sprintf(name_set, "cloth cape");
		sprintf(shor_set, "cloth cape");
		sprintf(long_set, "a cloth cape lies on the ground here.");
		obj->value[0] = 1;
		obj->value[2] = 1;
		obj->value[3] = 1;
		obj->value[4] = 1;
		obj->weight   = 10;
		obj->level	= 1;
		break;

		case 2:
		sprintf(name_set, "leather cape");
		sprintf(shor_set, "leather cape");
		sprintf(long_set, "a leather cape lies on the ground here.");
		obj->value[0] = 2;
		obj->value[2] = 2;
		obj->value[3] = 2;
		obj->value[4] = 2;
		obj->weight   = 20;
		obj->level	= 5;
		break;

		case 3:
		sprintf(name_set, "Fubashi skin cape");
		sprintf(shor_set, "fubashi-skin cape");
		sprintf(long_set, "a fubashi-skin cape lies on the ground here.");
		obj->value[0] = 3;
		obj->value[2] = 3;
		obj->value[3] = 3;
		obj->value[4] = 3;
		obj->weight   = 30;
		obj->level	= 10;
		break;

		case 4:
		sprintf(name_set, "troll skin cape");
		sprintf(shor_set, "troll-skin cape");
		sprintf(long_set, "a troll-skin cape lies on the ground here.");
		obj->value[0] = 4;
		obj->value[2] = 4;
		obj->value[3] = 4;
		obj->value[4] = 4;
		obj->weight   = 40;
		obj->level	= 15;
		break;

		case 5:
		sprintf(name_set, "dragonscale cape");
		sprintf(shor_set, "dragonscale cape");
		sprintf(long_set, "a dragonscale cape lies on the ground here.");
		obj->value[0] = 5;
		obj->value[2] = 5;
		obj->value[3] = 5;
		obj->value[4] = 5;
		obj->weight   = 50;
		obj->level	= 20;
		break;
	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	return(obj);
}


OBJ_DATA * make_armor_gloves (OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_HANDS;

	switch(range)
	{	default:
              case 1:
              sprintf(name_set, "gloves");
              sprintf(shor_set, "gloves");
              sprintf(long_set, "a gloves lies on the ground here.");
              obj->level	= 1;
              break;

              case 2:
              sprintf(name_set, "heavy gloves");
              sprintf(shor_set, "heavy gloves");
              sprintf(long_set, "a heavy gloves lies on the ground here.");
              obj->level	= 10;
              break;

              case 3:
              sprintf(name_set, "chain gloves");
              sprintf(shor_set, "chain gloves");
              sprintf(long_set, "a chain gloves lies on the ground here.");
              obj->level	= 20;
              break;

              case 4:
              sprintf(name_set, "light gauntlets");
              sprintf(shor_set, "light gauntlets");
              sprintf(long_set, "a light gauntlets lies on the ground here.");
              obj->level	= 30;
              break;

              case 5:
              sprintf(name_set, "gauntlets");
              sprintf(shor_set, "gauntlets");
              sprintf(long_set, "a gauntlets lies on the ground here.");
              obj->level	= 40;
              break;

              case 6:
              sprintf(name_set, "chain gloves");
              sprintf(shor_set, "chain gloves");
              sprintf(long_set, "a chain gloves lies on the ground here.");
              obj->level	= 50;
              break;

              case 7:
              sprintf(name_set, "demonhide gloves");
              sprintf(shor_set, "demonhide gloves");
              sprintf(long_set, "a demonhide gloves lies on the ground here.");
              obj->level	= 60;
              break;

              case 8:
              sprintf(name_set, "fubashi-skin gloves");
              sprintf(shor_set, "fubashi-skin gloves");
              sprintf(long_set, "a fubashi-skin gloves lies on the ground here.");
              obj->level	= 70;
              break;

              case 9:
              sprintf(name_set, "battle gauntlets");
              sprintf(shor_set, "battle gauntlets");
              sprintf(long_set, "a battle gauntlets lies on the ground here.");
              obj->level	= 80;
              break;

              case 10:
              sprintf(name_set, "war gauntlets");
              sprintf(shor_set, "war gauntlets");
              sprintf(long_set, "a war gauntlets lies on the ground here.");
              obj->level	= 90;
              break;

              case 11:
              sprintf(name_set, "iron gauntlets");
              sprintf(shor_set, "iron gauntlets");
              sprintf(long_set, "a iron gauntlets lies on the ground here.");
              obj->level	= 100;
              break;

	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	obj->value[0] = obj->level / 2;
	obj->value[2] = obj->level / 2;
	obj->value[3] = obj->level / 2;
	obj->value[4] = obj->level / 2;
	return(obj);
}


OBJ_DATA * make_armor_mantle	(OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_BODY_OVER;

	switch(range)
	{	default:
		case 1:
		sprintf(name_set, "cloth mantle");
		sprintf(shor_set, "cloth mantle");
		sprintf(long_set, "a cloth mantle lies on the ground here.");
		obj->value[0] = 1;
		obj->value[2] = 1;
		obj->value[3] = 1;
		obj->value[4] = 1;
		obj->weight   = 10;
		obj->level	= 1;
		break;

		case 2:
		sprintf(name_set, "leather mantle");
		sprintf(shor_set, "leather mantle");
		sprintf(long_set, "a leather mantle lies on the ground here.");
		obj->value[0] = 2;
		obj->value[2] = 2;
		obj->value[3] = 2;
		obj->value[4] = 2;
		obj->weight   = 20;
		obj->level	= 5;
		break;

		case 3:
		sprintf(name_set, "Fubashi skin mantle");
		sprintf(shor_set, "fubashi-skin mantle");
		sprintf(long_set, "a fubashi-skin mantle lies on the ground here.");
		obj->value[0] = 3;
		obj->value[2] = 3;
		obj->value[3] = 3;
		obj->value[4] = 3;
		obj->weight   = 30;
		obj->level	= 10;
		break;

		case 4:
		sprintf(name_set, "troll skin mantle");
		sprintf(shor_set, "troll-skin mantle");
		sprintf(long_set, "a troll-skin mantle lies on the ground here.");
		obj->value[0] = 4;
		obj->value[2] = 4;
		obj->value[3] = 4;
		obj->value[4] = 4;
		obj->weight   = 40;
		obj->level	= 15;
		break;

		case 5:
		sprintf(name_set, "dragonscale mantle");
		sprintf(shor_set, "dragonscale mantle");
		sprintf(long_set, "a dragonscale mantle lies on the ground here.");
		obj->value[0] = 5;
		obj->value[2] = 5;
		obj->value[3] = 5;
		obj->value[4] = 5;
		obj->weight   = 50;
		obj->level	= 20;
		break;
	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	return(obj);
}


OBJ_DATA * make_armor_shirt	(OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_BODY_UNDER;

	switch(range)
	{	default:
		case 1:
		sprintf(name_set, "cloth shirt");
		sprintf(shor_set, "cloth shirt");
		sprintf(long_set, "a cloth shirt lies on the ground here.");
		obj->value[0] = 1;
		obj->value[2] = 1;
		obj->value[3] = 1;
		obj->value[4] = 1;
		obj->weight   = 10;
		obj->level	= 1;
		break;

		case 2:
		sprintf(name_set, "leather shirt");
		sprintf(shor_set, "leather shirt");
		sprintf(long_set, "a leather shirt lies on the ground here.");
		obj->value[0] = 2;
		obj->value[2] = 2;
		obj->value[3] = 2;
		obj->value[4] = 2;
		obj->weight   = 20;
		obj->level	= 5;
		break;

		case 3:
		sprintf(name_set, "Fubashi skin shirt");
		sprintf(shor_set, "fubashi-skin shirt");
		sprintf(long_set, "a fubashi-skin shirt lies on the ground here.");
		obj->value[0] = 3;
		obj->value[2] = 3;
		obj->value[3] = 3;
		obj->value[4] = 3;
		obj->weight   = 30;
		obj->level	= 10;
		break;

		case 4:
		sprintf(name_set, "troll skin shirt");
		sprintf(shor_set, "troll-skin shirt");
		sprintf(long_set, "a troll-skin shirt lies on the ground here.");
		obj->value[0] = 4;
		obj->value[2] = 4;
		obj->value[3] = 4;
		obj->value[4] = 4;
		obj->weight   = 40;
		obj->level	= 15;
		break;

		case 5:
		sprintf(name_set, "dragonscale shirt");
		sprintf(shor_set, "dragonscale shirt");
		sprintf(long_set, "a dragonscale shirt lies on the ground here.");
		obj->value[0] = 5;
		obj->value[2] = 5;
		obj->value[3] = 5;
		obj->value[4] = 5;
		obj->weight   = 50;
		obj->level	= 20;
		break;
	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	return(obj);
}


OBJ_DATA * make_armor_boots	(OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_FEET;

	switch(range)
	{	default:
              case 1:
              sprintf(name_set, "boots");
              sprintf(shor_set, "boots");
              sprintf(long_set, "a boots lies on the ground here.");
              obj->level	= 1;
              break;

              case 2:
              sprintf(name_set, "heavt boots");
              sprintf(shor_set, "heavt boots");
              sprintf(long_set, "a heavt boots lies on the ground here.");
              obj->level	= 10;
              break;

              case 3:
              sprintf(name_set, "chain boots");
              sprintf(shor_set, "chain boots");
              sprintf(long_set, "a chain boots lies on the ground here.");
              obj->level	= 20;
              break;

              case 4:
              sprintf(name_set, "light plated boots");
              sprintf(shor_set, "light plated boots");
              sprintf(long_set, "a light plated boots lies on the ground here.");
              obj->level	= 30;
              break;

              case 5:
              sprintf(name_set, "greaves");
              sprintf(shor_set, "greaves");
              sprintf(long_set, "a greaves lies on the ground here.");
              obj->level	= 40;
              break;

              case 6:
              sprintf(name_set, "fubashi-skin boots");
              sprintf(shor_set, "fubashi-skin boots");
              sprintf(long_set, "a fubashi-skin boots lies on the ground here.");
              obj->level	= 50;
              break;

              case 7:
              sprintf(name_set, "corru-skin boots");
              sprintf(shor_set, "corru-skin boots");
              sprintf(long_set, "a corru-skin boots lies on the ground here.");
              obj->level	= 60;
              break;

              case 8:
              sprintf(name_set, "mesh boots");
              sprintf(shor_set, "mesh boots");
              sprintf(long_set, "a mesh boots lies on the ground here.");
              obj->level	= 70;
              break;

              case 9:
              sprintf(name_set, "battle boots");
              sprintf(shor_set, "battle boots");
              sprintf(long_set, "a battle boots lies on the ground here.");
              obj->level	= 80;
              break;

              case 10:
              sprintf(name_set, "war boots");
              sprintf(shor_set, "war boots");
              sprintf(long_set, "a war boots lies on the ground here.");
              obj->level	= 90;
              break;

              case 11:
              sprintf(name_set, "steel-toed boots");
              sprintf(shor_set, "steel-toed boots");
              sprintf(long_set, "a steel-toed boots lies on the ground here.");
              obj->level	= 100;
              break;

	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	obj->value[0] = obj->level / 2;
	obj->value[2] = obj->level / 2;
	obj->value[3] = obj->level / 2;
	obj->value[4] = obj->level / 2;
	obj->weight   = obj->level / 2;
	return(obj);
}

OBJ_DATA * make_armor_leggings	(OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_LEGS;

	switch(range)
	{	default:
		case 1:
		sprintf(name_set, "cloth leggings");
		sprintf(shor_set, "cloth leggings");
		sprintf(long_set, "a cloth leggings lies on the ground here.");
		obj->value[0] = 1;
		obj->value[2] = 1;
		obj->value[3] = 1;
		obj->value[4] = 1;
		obj->weight   = 10;
		obj->level	= 1;
		break;

		case 2:
		sprintf(name_set, "leather leggings");
		sprintf(shor_set, "leather leggings");
		sprintf(long_set, "a leather leggings lies on the ground here.");
		obj->value[0] = 2;
		obj->value[2] = 2;
		obj->value[3] = 2;
		obj->value[4] = 2;
		obj->weight   = 20;
		obj->level	= 5;
		break;

		case 3:
		sprintf(name_set, "Fubashi skin leggings");
		sprintf(shor_set, "fubashi-skin leggings");
		sprintf(long_set, "a fubashi-skin leggings lies on the ground here.");
		obj->value[0] = 3;
		obj->value[2] = 3;
		obj->value[3] = 3;
		obj->value[4] = 3;
		obj->weight   = 30;
		obj->level	= 10;
		break;

		case 4:
		sprintf(name_set, "troll skin leggings");
		sprintf(shor_set, "troll-skin leggings");
		sprintf(long_set, "a troll-skin leggings lies on the ground here.");
		obj->value[0] = 4;
		obj->value[2] = 4;
		obj->value[3] = 4;
		obj->value[4] = 4;
		obj->weight   = 40;
		obj->level	= 15;
		break;

		case 5:
		sprintf(name_set, "dragonscale leggings");
		sprintf(shor_set, "dragonscale leggings");
		sprintf(long_set, "a dragonscale leggings lies on the ground here.");
		obj->value[0] = 5;
		obj->value[2] = 5;
		obj->value[3] = 5;
		obj->value[4] = 5;
		obj->weight   = 50;
		obj->level	= 20;
		break;
	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	return(obj);
}

OBJ_DATA * make_armor_underwear	(OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_LEGS_UNDER;

	switch(range)
	{	default:
		case 1:
		sprintf(name_set, "cloth underwear");
		sprintf(shor_set, "cloth underwear");
		sprintf(long_set, "a cloth underwear lies on the ground here.");
		obj->value[0] = 1;
		obj->value[2] = 1;
		obj->value[3] = 1;
		obj->value[4] = 1;
		obj->weight   = 10;
		obj->level	= 1;
		break;

		case 2:
		sprintf(name_set, "leather underwear");
		sprintf(shor_set, "leather underwear");
		sprintf(long_set, "a leather underwear lies on the ground here.");
		obj->value[0] = 2;
		obj->value[2] = 2;
		obj->value[3] = 2;
		obj->value[4] = 2;
		obj->weight   = 20;
		obj->level	= 5;
		break;

		case 3:
		sprintf(name_set, "Fubashi skin underwear");
		sprintf(shor_set, "fubashi-skin underwear");
		sprintf(long_set, "a fubashi-skin underwear lies on the ground here.");
		obj->value[0] = 3;
		obj->value[2] = 3;
		obj->value[3] = 3;
		obj->value[4] = 3;
		obj->weight   = 30;
		obj->level	= 10;
		break;

		case 4:
		sprintf(name_set, "troll skin underwear");
		sprintf(shor_set, "troll-skin underwear");
		sprintf(long_set, "a troll-skin underwear lies on the ground here.");
		obj->value[0] = 4;
		obj->value[2] = 4;
		obj->value[3] = 4;
		obj->value[4] = 4;
		obj->weight   = 40;
		obj->level	= 15;
		break;

		case 5:
		sprintf(name_set, "dragonscale underwear");
		sprintf(shor_set, "dragonscale underwear");
		sprintf(long_set, "a dragonscale underwear lies on the ground here.");
		obj->value[0] = 5;
		obj->value[2] = 5;
		obj->value[3] = 5;
		obj->value[4] = 5;
		obj->weight   = 50;
		obj->level	= 20;
		break;
	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	return(obj);
}

OBJ_DATA * make_armor_cloak	(OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_ABOUT;

	switch(range)
	{	default:
		case 1:
		sprintf(name_set, "cloth cloak");
		sprintf(shor_set, "cloth cloak");
		sprintf(long_set, "a cloth cloak lies on the ground here.");
		obj->value[0] = 1;
		obj->value[2] = 1;
		obj->value[3] = 1;
		obj->value[4] = 1;
		obj->weight   = 10;
		obj->level	= 1;
		break;

		case 2:
		sprintf(name_set, "leather cloak");
		sprintf(shor_set, "leather cloak");
		sprintf(long_set, "a leather cloak lies on the ground here.");
		obj->value[0] = 2;
		obj->value[2] = 2;
		obj->value[3] = 2;
		obj->value[4] = 2;
		obj->weight   = 20;
		obj->level	= 5;
		break;

		case 3:
		sprintf(name_set, "Fubashi skin cloak");
		sprintf(shor_set, "fubashi-skin cloak");
		sprintf(long_set, "a fubashi-skin cloak lies on the ground here.");
		obj->value[0] = 3;
		obj->value[2] = 3;
		obj->value[3] = 3;
		obj->value[4] = 3;
		obj->weight   = 30;
		obj->level	= 10;
		break;

		case 4:
		sprintf(name_set, "troll skin cloak");
		sprintf(shor_set, "troll-skin cloak");
		sprintf(long_set, "a troll-skin cloak lies on the ground here.");
		obj->value[0] = 4;
		obj->value[2] = 4;
		obj->value[3] = 4;
		obj->value[4] = 4;
		obj->weight   = 40;
		obj->level	= 15;
		break;

		case 5:
		sprintf(name_set, "dragonscale cloak");
		sprintf(shor_set, "dragonscale cloak");
		sprintf(long_set, "a dragonscale cloak lies on the ground here.");
		obj->value[0] = 5;
		obj->value[2] = 5;
		obj->value[3] = 5;
		obj->value[4] = 5;
		obj->weight   = 50;
		obj->level	= 20;
		break;
	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	return(obj);
}


OBJ_DATA * make_armor_bracer	(OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_WRIST;

	switch(range)
	{	default:
		case 1:
		sprintf(name_set, "cloth bracer");
		sprintf(shor_set, "cloth bracer");
		sprintf(long_set, "a cloth bracer lies on the ground here.");
		obj->value[0] = 1;
		obj->value[2] = 1;
		obj->value[3] = 1;
		obj->value[4] = 1;
		obj->weight   = 10;
		obj->level	= 1;
		break;

		case 2:
		sprintf(name_set, "leather bracer");
		sprintf(shor_set, "leather bracer");
		sprintf(long_set, "a leather bracer lies on the ground here.");
		obj->value[0] = 2;
		obj->value[2] = 2;
		obj->value[3] = 2;
		obj->value[4] = 2;
		obj->weight   = 20;
		obj->level	= 5;
		break;

		case 3:
		sprintf(name_set, "Fubashi skin bracer");
		sprintf(shor_set, "fubashi-skin bracer");
		sprintf(long_set, "a fubashi-skin bracer lies on the ground here.");
		obj->value[0] = 3;
		obj->value[2] = 3;
		obj->value[3] = 3;
		obj->value[4] = 3;
		obj->weight   = 30;
		obj->level	= 10;
		break;

		case 4:
		sprintf(name_set, "troll skin bracer");
		sprintf(shor_set, "troll-skin bracer");
		sprintf(long_set, "a troll-skin bracer lies on the ground here.");
		obj->value[0] = 4;
		obj->value[2] = 4;
		obj->value[3] = 4;
		obj->value[4] = 4;
		obj->weight   = 40;
		obj->level	= 15;
		break;

		case 5:
		sprintf(name_set, "dragonscale bracer");
		sprintf(shor_set, "dragonscale bracer");
		sprintf(long_set, "a dragonscale bracer lies on the ground here.");
		obj->value[0] = 5;
		obj->value[2] = 5;
		obj->value[3] = 5;
		obj->value[4] = 5;
		obj->weight   = 50;
		obj->level	= 20;
		break;
	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	return(obj);
}


OBJ_DATA * make_armor_belt	(OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_WAIST;

	switch(range)
	{	default:
              case 1:
              sprintf(name_set, "sash");
              sprintf(shor_set, "sash");
              sprintf(long_set, "a sash lies on the ground here.");
              obj->level	= 1;
              break;

              case 2:
              sprintf(name_set, "light belt");
              sprintf(shor_set, "light belt");
              sprintf(long_set, "a light belt lies on the ground here.");
              obj->level	= 10;
              break;

              case 3:
              sprintf(name_set, "belt");
              sprintf(shor_set, "belt");
              sprintf(long_set, "a belt lies on the ground here.");
              obj->level	= 20;
              break;

              case 4:
              sprintf(name_set, "heavy belt");
              sprintf(shor_set, "heavy belt");
              sprintf(long_set, "a heavy belt lies on the ground here.");
              obj->level	= 30;
              break;

              case 5:
              sprintf(name_set, "plated belt");
              sprintf(shor_set, "plated belt");
              sprintf(long_set, "a plated belt lies on the ground here.");
              obj->level	= 40;
              break;

              case 6:
              sprintf(name_set, "fubashi-skin sash");
              sprintf(shor_set, "fubashi-skin sash");
              sprintf(long_set, "a fubashi-skin sash lies on the ground here.");
              obj->level	= 50;
              break;

              case 7:
              sprintf(name_set, "corru-skin belt");
              sprintf(shor_set, "corru-skin belt");
              sprintf(long_set, "a corru-skin belt lies on the ground here.");
              obj->level	= 60;
              break;

              case 8:
              sprintf(name_set, "mesh belt");
              sprintf(shor_set, "mesh belt");
              sprintf(long_set, "a mesh belt lies on the ground here.");
              obj->level	= 70;
              break;

              case 9:
              sprintf(name_set, "battle belt");
              sprintf(shor_set, "battle belt");
              sprintf(long_set, "a battle belt lies on the ground here.");
              obj->level	= 80;
              break;

              case 10:
              sprintf(name_set, "war belt");
              sprintf(shor_set, "war belt");
              sprintf(long_set, "a war belt lies on the ground here.");
              obj->level	= 90;
              break;

              case 11:
              sprintf(name_set, "steel belt");
              sprintf(shor_set, "steel belt");
              sprintf(long_set, "a steel belt lies on the ground here.");
              obj->level	= 100;
              break;

	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	obj->value[0] = obj->level / 2;
	obj->value[2] = obj->level / 2;
	obj->value[3] = obj->level / 2;
	obj->value[4] = obj->level / 2;
	return(obj);
}


OBJ_DATA * make_armor_body	(OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_BODY;

	switch(range)
	{	default:
              case 1:
              sprintf(name_set, "padded armor");
              sprintf(shor_set, "padded armor");
              sprintf(long_set, "a padded armor lies on the ground here.");
              obj->level	= 1;
              break;

              case 2:
              sprintf(name_set, "leather armor");
              sprintf(shor_set, "leather armor");
              sprintf(long_set, "a leather armor lies on the ground here.");
              obj->level	= 10;
              break;

              case 3:
              sprintf(name_set, "hard leather armor");
              sprintf(shor_set, "hard leather armor");
              sprintf(long_set, "a hard leather armor lies on the ground here.");
              obj->level	= 20;
              break;

              case 4:
              sprintf(name_set, "studded leather");
              sprintf(shor_set, "studded leather");
              sprintf(long_set, "a studded leather lies on the ground here.");
              obj->level	= 30;
              break;

              case 5:
              sprintf(name_set, "ring mail");
              sprintf(shor_set, "ring mail");
              sprintf(long_set, "a ring mail lies on the ground here.");
              obj->level	= 40;
              break;

              case 6:
              sprintf(name_set, "scale mail");
              sprintf(shor_set, "scale mail");
              sprintf(long_set, "a scale mail lies on the ground here.");
              obj->level	= 50;
              break;

              case 7:
              sprintf(name_set, "breast plate");
              sprintf(shor_set, "breast plate");
              sprintf(long_set, "a breast plate lies on the ground here.");
              obj->level	= 60;
              break;

              case 8:
              sprintf(name_set, "chain mail");
              sprintf(shor_set, "chain mail");
              sprintf(long_set, "a chain mail lies on the ground here.");
              obj->level	= 70;
              break;

              case 9:
              sprintf(name_set, "light plate");
              sprintf(shor_set, "light plate");
              sprintf(long_set, "a light plate lies on the ground here.");
              obj->level	= 80;
              break;

              case 10:
              sprintf(name_set, "field plate");
              sprintf(shor_set, "field plate");
              sprintf(long_set, "a field plate lies on the ground here.");
              obj->level	= 90;
              break;

              case 11:
              sprintf(name_set, "platemail");
              sprintf(shor_set, "platemail");
              sprintf(long_set, "a platemail lies on the ground here.");
              obj->level	= 100;
              break;
	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	obj->value[0] = obj->level / 2;
	obj->value[2] = obj->level / 2;
	obj->value[3] = obj->level / 2;
	obj->value[4] = obj->level / 2;
	return(obj);
}


OBJ_DATA * make_armor_head	(OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_HEAD;

	switch(range)
	{	default:
              case 1:
              sprintf(name_set, "cap");
              sprintf(shor_set, "cap");
              sprintf(long_set, "a cap lies on the ground here.");
              obj->level	= 1;
              break;

              case 2:
              sprintf(name_set, "skull cap");
              sprintf(shor_set, "skull cap");
              sprintf(long_set, "a skull cap lies on the ground here.");
              obj->level	= 10;
              break;

              case 3:
              sprintf(name_set, "helm");
              sprintf(shor_set, "helm");
              sprintf(long_set, "a helm lies on the ground here.");
              obj->level	= 20;
              break;

              case 4:
              sprintf(name_set, "casque");
              sprintf(shor_set, "casque");
              sprintf(long_set, "a casque lies on the ground here.");
              obj->level	= 30;
              break;

              case 5:
              sprintf(name_set, "full helm");
              sprintf(shor_set, "full helm");
              sprintf(long_set, "a full helm lies on the ground here.");
              obj->level	= 40;
              break;

              case 6:
              sprintf(name_set, "great helm");
              sprintf(shor_set, "great helm");
              sprintf(long_set, "a great helm lies on the ground here.");
              obj->level	= 50;
              break;

              case 7:
              sprintf(name_set, "mask");
              sprintf(shor_set, "mask");
              sprintf(long_set, "a mask lies on the ground here.");
              obj->level	= 60;
              break;

              case 8:
              sprintf(name_set, "death mask");
              sprintf(shor_set, "death mask");
              sprintf(long_set, "a death mask lies on the ground here.");
              obj->level	= 70;
              break;

              case 9:
              sprintf(name_set, "crown");
              sprintf(shor_set, "crown");
              sprintf(long_set, "a crown lies on the ground here.");
              obj->level	= 80;
              break;

              case 10:
              sprintf(name_set, "bone helm");
              sprintf(shor_set, "bone helm");
              sprintf(long_set, "a bone helm lies on the ground here.");
              obj->level	= 90;
              break;

              case 11:
              sprintf(name_set, "winged helm");
              sprintf(shor_set, "winged helm");
              sprintf(long_set, "a winged helm lies on the ground here.");
              obj->level	= 100;
              break;
	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	obj->value[0] = obj->level / 2;
	obj->value[2] = obj->level / 2;
	obj->value[3] = obj->level / 2;
	obj->value[4] = obj->level / 2;
	obj->weight   = obj->level / 2;
	return(obj);
}


OBJ_DATA * make_armor_shield	(OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_SHIELD;

	switch(range)
	{	default:
              case 1:
              sprintf(name_set, "buckler");
              sprintf(shor_set, "buckler");
              sprintf(long_set, "a buckler lies on the ground here.");
              obj->level	= 1;
              break;

              case 2:
              sprintf(name_set, "small shield");
              sprintf(shor_set, "small shield");
              sprintf(long_set, "a small shield lies on the ground here.");
              obj->level	= 10;
              break;

              case 3:
              sprintf(name_set, "round shield");
              sprintf(shor_set, "round shield");
              sprintf(long_set, "a round shield lies on the ground here.");
              obj->level	= 20;
              break;

              case 4:
              sprintf(name_set, "large shield");
              sprintf(shor_set, "large shield");
              sprintf(long_set, "a large shield lies on the ground here.");
              obj->level	= 30;
              break;

              case 5:
              sprintf(name_set, "kite shield");
              sprintf(shor_set, "kite shield");
              sprintf(long_set, "a kite shield lies on the ground here.");
              obj->level	= 40;
              break;

              case 6:
              sprintf(name_set, "dragon shield");
              sprintf(shor_set, "dragon shield");
              sprintf(long_set, "a dragon shield lies on the ground here.");
              obj->level	= 50;
              break;

              case 7:
              sprintf(name_set, "spiked shield");
              sprintf(shor_set, "spiked shield");
              sprintf(long_set, "a spiked shield lies on the ground here.");
              obj->level	= 60;
              break;

              case 8:
              sprintf(name_set, "tower shield");
              sprintf(shor_set, "tower shield");
              sprintf(long_set, "a tower shield lies on the ground here.");
              obj->level	= 70;
              break;

              case 9:
              sprintf(name_set, "bone shield");
              sprintf(shor_set, "bone shield");
              sprintf(long_set, "a bone shield lies on the ground here.");
              obj->level	= 80;
              break;

              case 10:
              sprintf(name_set, "gothic shield");
              sprintf(shor_set, "gothic shield");
              sprintf(long_set, "a gothic shield lies on the ground here.");
              obj->level	= 90;
              break;

              case 11:
              sprintf(name_set, "grim shield");
              sprintf(shor_set, "grim shield");
              sprintf(long_set, "a grim shield lies on the ground here.");
              obj->level	= 100;
              break;
	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	obj->value[0] = obj->level / 2;
	obj->value[2] = obj->level / 2;
	obj->value[3] = obj->level / 2;
	obj->value[4] = obj->level / 2;
	obj->weight   = obj->level / 2;
	return(obj);
}


OBJ_DATA * make_armor_float	(OBJ_DATA * obj, int level)
{

	int range;
	char name_set[MSL];
	char shor_set[MSL];
	char long_set[MSL];

	range = number_range(1, (level / 10));

	obj->wear_flags += ITEM_WEAR_FLOAT;

	switch(range)
	{	default:
		case 1:
		sprintf(name_set, "green ioun stone");
		sprintf(shor_set, "{Ggreen{x ioun stone");
		sprintf(long_set, "a green ioun stone lies on the ground here.");
		obj->value[0] = 1;
		obj->value[2] = 1;
		obj->value[3] = 1;
		obj->value[4] = 1;
		obj->weight   = 10;
		obj->level	= 1;
		break;

		case 2:
		sprintf(name_set, "blue ioun stone");
		sprintf(shor_set, "{bblue{x ioun stone");
		sprintf(long_set, "a blue ioun stone lies on the ground here.");
		obj->value[0] = 2;
		obj->value[2] = 2;
		obj->value[3] = 2;
		obj->value[4] = 2;
		obj->weight   = 20;
		obj->level	= 5;
		break;

		case 3:
		sprintf(name_set, "red ioun stone");
		sprintf(shor_set, "{rred{x ioun stone");
		sprintf(long_set, "a red ioun stone lies on the ground here.");
		obj->value[0] = 3;
		obj->value[2] = 3;
		obj->value[3] = 3;
		obj->value[4] = 3;
		obj->weight   = 30;
		obj->level	= 10;
		break;

		case 4:
		sprintf(name_set, "white ioun stone");
		sprintf(shor_set, "{wwhite{x ioun stone");
		sprintf(long_set, "a white ioun stone lies on the ground here.");
		obj->value[0] = 4;
		obj->value[2] = 4;
		obj->value[3] = 4;
		obj->value[4] = 4;
		obj->weight   = 40;
		obj->level	= 15;
		break;

		case 5:
		sprintf(name_set, "black ioun stone");
		sprintf(shor_set, "{Dblack{x ioun stone");
		sprintf(long_set, "a black ioun stone lies on the ground here.");
		obj->value[0] = 5;
		obj->value[2] = 5;
		obj->value[3] = 5;
		obj->value[4] = 5;
		obj->weight   = 50;
		obj->level	= 20;
		break;
	}

	obj->cost	   = number_range(level * 10, level * 1000);
	obj->name        = str_dup (name_set);
	obj->short_descr = str_dup (shor_set);
	obj->description = str_dup (long_set);
	return(obj);
}