void(float cost, float type) BuyGrenade =
{
	local string z;
	local float x, y;

	if (self.ammo_shells < cost)
	{
		self.currentmenu = "none";
		sprint(self, PRINT_HIGH, "not enough money.\n");
		return;
	}

	sound (self, CHAN_BODY, "misc/item1.wav", 1, ATTN_NORM);
	self.ammo_shells = self.ammo_shells - cost;

	sprint(self, PRINT_HIGH, "you bought a ");

	if (type == 1)
		y = IID_GREN_SMOKE;
	if (type == 2)
		y = IID_GREN_FRAG;
	if (type == 3)
		y = IID_GREN_EMP;

	z = GetItemName(y);
	sprint(self, PRINT_HIGH, z);
	sprint(self, PRINT_HIGH, "\n");

	//put grenade in inventory
	//finds existing grenades, otherwise, empty slot

	x = SlotOfItem(self, y);

	SlotVal(IID_GREN_SMOKE, 500)

	if (x != 0) //found existing grenades
		SetItemSlot(self, x, SlotVal(y, 1));
	if (x == 0)
		x = FindEmptySlot(self, y);

		SetItemSlot(self, x, SlotVal(y, 1));
};


void() BuyBandages =
{
	local string y;

	if (self.ammo_shells < 2)
	{
		self.currentmenu = "none";
		sprint(self, PRINT_HIGH, "not enough money.\n");
		return;
	}
	if (self.class != 2)
	{
		self.currentmenu = "none";
		sprint(self, PRINT_HIGH, "not a medic.\n");
		return;
	}
	if (self.bandages >= 50)
	{
		self.currentmenu = "none";
		sprint(self, PRINT_HIGH, "too many bandages.\n");
		return;
	}

	sound (self, CHAN_BODY, "misc/item1.wav", 1, ATTN_NORM);
	self.bandages = self.bandages + 25;
	self.ammo_shells = self.ammo_shells - 2;
	if (self.bandages > 50)
		self.bandages = 50;
	y = ftos(self.bandages);
	sprint(self, PRINT_HIGH, "you now have ");
	sprint(self, PRINT_HIGH, y);
	sprint(self, PRINT_HIGH, "/50 bandages.\n");	
};

void(float cost, float type) BuyChem =
{
	local string x;
	local float y;

	if (self.ammo_shells < cost)
	{
		self.currentmenu = "none";
		sprint(self, PRINT_HIGH, "not enough money.\n");
		return;
	}
	if (type >= 2 && self.class != 1)
	{
		self.currentmenu = "none";
		sprint(self, PRINT_HIGH, "not a medic.\n");
		return;
	}
	if (self.equipment == 1)
		y = 4;
	else
		y = 2;

	if (self.chemcount >= y)
	{
		self.currentmenu = "none";
		sprint(self, PRINT_HIGH, "you can't hold any more chems.\n");
		return;
	}

	sound (self, CHAN_BODY, "misc/item1.wav", 1, ATTN_NORM);
	self.chemcount = y;
	self.chem = type;
	self.ammo_shells = self.ammo_shells - cost;
	x = GetChemName();
	sprint (self, PRINT_HIGH, x);
	sprint(self, PRINT_HIGH, " purchased.\n");
};

void(string type) ChangeAmmo =
{

	if (self.ammo_shells < 1)
	{
		self.currentmenu = "none";
		sprint(self, PRINT_HIGH, "not enough money.\n");
		return;
	}

	
	sound (self, CHAN_BODY, "misc/item1.wav", 1, ATTN_NORM);

	if (self.current_slot == 1)
		self.ammotype1 = type;
	if (self.current_slot == 2)
		self.ammotype2 = type;
};

void() BuyScraps =
{
	local string y;

	if (self.ammo_shells < 5)
	{
		self.currentmenu = "none";
		sprint(self, PRINT_HIGH, "not enough money.\n");
		return;
	}
	if (self.class != 6)
	{
		self.currentmenu = "none";
		sprint(self, PRINT_HIGH, "not a scientist.\n");
		return;
	}
	if (self.scraps >= 15)
	{
		self.currentmenu = "none";
		sprint(self, PRINT_HIGH, "too many metal scraps.\n");
		return;
	}

	sound (self, CHAN_BODY, "items/armor1.wav", 1, ATTN_NORM);
	self.scraps = self.scraps + 5;
	self.ammo_shells = self.ammo_shells - 5;
	if (self.scraps > 15)
		self.scraps = 15;
	y = ftos(self.scraps);
	sprint(self, PRINT_HIGH, "you now have ");
	sprint(self, PRINT_HIGH, y);
	sprint(self, PRINT_HIGH, "/15 scraps.\n");

};


void (float wt, float cost, float item) BuyWeapon =
{
	sprint (self, PRINT_HIGH, "The shop is not open today.\n");
	self.currentmenu = "none";
	SetWeaponModel ();
	return;

/*
	local float lbs;
	local string qq;
	local float curr;
	local float c3;
	local string c1;
	local string c2;

	lbs = weightx ();

	if ((self.current_slot == 1))
	{
		curr = self.slot1_weight;

		if (self.slot2 == 0)
			self.slot2 = self.slot1;
		if (self.slot1 != 0)
		{
			DropWeapon (self.slot1, 1, 0);
			self.slot1 = 0;
		}
		GetWeaponModel ();
	}
	if ((self.current_slot == 2))
	{
		curr = self.slot2_weight;

		if (self.slot1 == 0)
			self.slot1 = self.slot2;
		if (self.slot2 != 0)
		{
			DropWeapon (self.slot2, 1, 0);
			self.slot2 = 0;
		}

		GetWeaponModel ();
	}
	if ((lbs + wt - curr) > self.max_weight)
	{
		sprint (self, PRINT_HIGH, "you can't carry that much.\n");
		self.currentmenu = "none";
		GetWeaponModel ();
		return;
	}
	if (cost > self.ammo_shells)
	{
		sprint (self, PRINT_HIGH, "not enough money.\n");
		self.currentmenu = "none";
		GetWeaponModel ();
		return;
	}
	self.ammo_shells = self.ammo_shells - cost;
	if ((self.current_slot == 1))
	{
		GetWeaponWeight (self, self.current_slot);
		stuffcmd (self, "impulse 1\n");
		self.slot1 = item;
		self.items = (self.items | IT_SUPER_NAILGUN);
		GetWeaponModel ();
	}
	if (self.current_slot == 2)
	{
		GetWeaponWeight (self, self.current_slot);
		stuffcmd (self, "impulse 2\n");
		self.slot2 = item;
		self.items = (self.items | IT_GRENADE_LAUNCHER);
		GetWeaponModel ();
	}
	qq = GetWeaponName (self, item);
	sprint (self, PRINT_HIGH, qq);
	sprint (self, PRINT_HIGH, " purchased.\n");
	sound (self, CHAN_BODY, "misc/item2.wav", 1, ATTN_NORM);
	self.currentmenu = "none";
	WeaponAmmo (SPAWNFLAG_SUPERSPIKE);
	WeaponAmmo (SPAWNFLAG_LASER);
	GetWeaponWeight (self, 1);
	GetWeaponWeight (self, 2);
	GetWeaponModel ();
	return;
*/
};

void (float cost, float item) BuyPerk =
{
	if (self.frags < cost)
	{
		sprint (self, PRINT_HIGH, "not enough kills\n");
		self.currentmenu = "none";
		return;
	}
	sprint (self, PRINT_HIGH, "ok, ability gained.\n");
	self.perk = item;
	self.currentmenu = "none";
	return;
};

void (float wt, float cost, float item) BuyArmor =
{
	local float curr;
	local float lbs;
	local string x;

	lbs = weightx ();
	if (((item >= TE_LIGHTNING2) && (self.protect >= SPAWNFLAG_SUPERSPIKE)))
	{
		sprint (self, PRINT_HIGH, "remove your hardware before buying\nany kind of advanced armor!\ntoo much interference otherwise.");
		self.currentmenu = "none";
		return;
	}
	if ((cost > self.ammo_shells))
	{
		sprint (self, PRINT_HIGH, "not enough money.\n");
		self.currentmenu = "none";
		return;
	}
	if ((((lbs + wt) - self.armor_weight) > self.max_weight))
	{
		sprint (self, PRINT_HIGH, "you can't carry that much.\n");
		self.currentmenu = "none";
		return;
	}
	sound (self, CHAN_BODY, "misc/item2.wav", 1, ATTN_NORM);
	self.ammo_shells = (self.ammo_shells - cost);
	self.armor_weight = wt;
	self.armor = item;
	x = GetArmorName();
	sprint (self, PRINT_HIGH, x);
	sprint (self, PRINT_HIGH, " purchased.\n");

	return;
};

void (float cost, float item) BuyEquipment =
{
	local float lbs;
	local string x;

	lbs = weightx ();
	if ((cost > self.ammo_shells))
	{
		sprint (self, PRINT_HIGH, "not enough money.\n");
		self.currentmenu = "none";
		return;
	}
	sound (self, CHAN_BODY, "items/item1.wav", 1, ATTN_NORM);
	self.equipment = item;
	x = GetEquipmentName();
	sprint (self, PRINT_HIGH, x);
	sprint (self, PRINT_HIGH, " purchased.\n");
	self.ammo_shells = (self.ammo_shells - cost);
	return;
};

void (float cost, float item) BuyProtect =
{
	local string x;

	if ((self.armor >= TE_LIGHTNING2))
	{
		sprint (self, PRINT_HIGH, "too many electronics in\nyour currently worn armor!");
		self.currentmenu = "none";
		return;
	}
	if ((cost > self.ammo_shells))
	{
		sprint (self, PRINT_HIGH, "not enough money.\n");
		self.currentmenu = "none";
		return;
	}
	sound (self, CHAN_BODY, "items/item1.wav", 1, ATTN_NORM);
	self.ammo_shells = (self.ammo_shells - cost);
	self.protect = item;
	x = GetProtectName();
	sprint (self, PRINT_HIGH, x);
	sprint (self, PRINT_HIGH, " purchased.\n");

	return;
};


float (float input) overweight =
{
	local float tmp;
	local float max;

	tmp = ((((input) + self.armor_weight) + self.slot1_weight) + self.slot2_weight);
	max = self.max_weight;
	if ((self.class == TE_LIGHTNING2))
	{
		max = (max + SPAWNFLAG_LASER);
	}
	if ((self.perk == TE_LAVASPLASH))
	{
		return (FALSE);
	}
	if ((tmp > max))
	{
		return (TRUE);
	}
	else
	{
		return (FALSE);
	}
};

float () weightx =
{
	local float tmp;

	tmp = self.slot1_weight + self.slot2_weight + self.armor_weight;
	return tmp;
};

void () W_GetClass =
{
	if ((self.currentmenu == "select_skill"))
	{
		sound (self, CHAN_WEAPON, "buttons/switch02.wav", TRUE, ATTN_NORM);
		if (self.impulse == 1)
		{
			self.currentmenu = "none";
			self.max_health = 80;
			self.class = 1;
			self.currentmenu = "confirm_skill";
			centerprint (self, "�your class will be�\n\nMedic - OK?\n�1� Yes     \n�2� No      \n");
			self.ghost = 0;
			return;
		}
		if ((self.impulse == 2))
		{
			self.currentmenu = "none";
			self.max_health = 70;
			self.class = 2;
			self.currentmenu = "confirm_skill";
			centerprint (self, "�your class will be�\n\nAssassin - OK?\n�1� Yes     \n�2� No      \n");
			self.ghost = 0;
			return;
		}
		if (self.impulse == 3)
		{
			self.currentmenu = "none";
			self.max_health = 100;
			self.class = 3;
			self.currentmenu = "confirm_skill";
			centerprint (self, "�your class will be�\n\nSoldiier - OK?\n�1� Yes     \n�2� No      \n");
			self.ghost = 0;
			return;
		}
		if (self.impulse == 4)
		{
			self.max_health = 80;
			self.currentmenu = "none";
			self.class = 4;
			self.currentmenu = "confirm_skill";
			centerprint (self, "�your class will be�\n\nScientist - OK?\n�1� Yes     \n�2� No      \n");
			self.ghost = 0;
			return;
		}
	}
	if (self.impulse > 4)
		return;

};


void() W_PlayerMenu =
{
	if (self.currentmenu == "none")
		return;

	if (self.currentmenu == "shop_list")
	{
		if (self.impulse == 1)
			self.currentmenu = "shop_trait";
		if (self.impulse == 2)
			self.currentmenu = "shop_perk";
		if (self.impulse == 3)
			self.currentmenu = "shop_armor";
		if (self.impulse == 4)
			self.currentmenu = "shop_protect";
		if (self.impulse == 5)
			self.currentmenu = "shop_weapons";
		if (self.impulse == 6)
			self.currentmenu = "shop_equipment";
		if (self.impulse == 7)
			self.currentmenu = "shop_chems";
		if (self.impulse == 8)
			self.currentmenu = "shop_other";

		DisplayMenu();
		return;
	}

	if (self.currentmenu == "shop_trait")
	{
		if (self.impulse == 1)
			self.currentmenu = "shop_trait";
		if (self.impulse == 2)
			self.currentmenu = "shop_perk";
		if (self.impulse == 3)
			self.currentmenu = "shop_armor";
		if (self.impulse == 4)
			self.currentmenu = "shop_protect";
		if (self.impulse == 5)
			self.currentmenu = "shop_weapons";
		if (self.impulse == 6)
			self.currentmenu = "shop_equipment";
		if (self.impulse == 7)
			self.currentmenu = "shop_chems";
		if (self.impulse == 8)
			self.currentmenu = "shop_other";

		DisplayMenu();
		return;
	}
	if (self.currentmenu == "shop_perk")
	{
		if (self.impulse == 1)
                  BuyPerk(1, 1);
		if (self.impulse == 2)
                  BuyPerk(1, 2);
		if (self.impulse == 3)
                  BuyPerk(1, 3);
		if (self.impulse == 4)
                  BuyPerk(2, 4);
		if (self.impulse == 5)
                  BuyPerk(2, 5);
		if (self.impulse == 6)
                  BuyPerk(2, 6);
		if (self.impulse == 7)
                  BuyPerk(2, 7);
		if (self.impulse == 8)
                  BuyPerk(3, 8);
		if (self.impulse == 9)
                  BuyPerk(4, 9);

			return;
	}
	if (self.currentmenu == "shop_armor")
	{
		if (self.impulse == 1)
                  BuyArmor(3, 03, 1);         //weight, cost, item
		if (self.impulse == 2)
                  BuyArmor(7, 05, 2);         //weight, cost, item
		if (self.impulse == 3)
                  BuyArmor(9, 10, 3);         //weight, cost, item
		if (self.impulse == 4)
                  BuyArmor(15, 12, 4);         //weight, cost, item
		if (self.impulse == 5)
                  BuyArmor(12, 25, 5);         //weight, cost, item
		if (self.impulse == 6)
                  BuyArmor(17, 35, 6);         //weight, cost, item
		if (self.impulse == 7)
                  BuyArmor(5, 45, 7);         //weight, cost, item
		if (self.impulse == 8)
                  BuyArmor(20, 55, 8);         //weight, cost, item

			return;
	}
	if (self.currentmenu == "shop_protect")
	{
		if (self.impulse == 1)
                  BuyProtect(20, 1);
		if (self.impulse == 2)
                  BuyProtect(20, 2);
		if (self.impulse == 3)
                  BuyProtect(30, 3);
		if (self.impulse == 4)
                  BuyProtect(30, 4);
		if (self.impulse == 5)
                  BuyProtect(40, 5);

			return;
	}
	if (self.currentmenu == "shop_weapons")
	{
		if (self.impulse == 1)
			self.currentmenu = "shop_melee";
		if (self.impulse == 2)
			self.currentmenu = "shop_thrown";
		if (self.impulse == 3)
			self.currentmenu = "shop_pistols";
		if (self.impulse == 4)
			self.currentmenu = "shop_shotguns";
		if (self.impulse == 5)
			self.currentmenu = "shop_rifles";

		DisplayMenu();
		return;
	}
	if (self.currentmenu == "shop_melee")
	{
		if (self.impulse == 1)
                  BuyWeapon(1, 1, 1);         //weight, cost, item
		if (self.impulse == 2)
                  BuyWeapon(6, 3, 2);         //weight, cost, item
		if (self.impulse == 3)
                  BuyWeapon(3, 10, 3);         //weight, cost, item
		if (self.impulse == 4)
                  BuyWeapon(10, 15, 4);         //weight, cost, item

			return;
	}
	if (self.currentmenu == "shop_thrown")
	{
		if (self.impulse == 1)
                  BuyGrenade(3, 1);         //weight, cost, item
		if (self.impulse == 2)
                  BuyGrenade(4, 2);         //weight, cost, item
		if (self.impulse == 3)
                  BuyGrenade(5, 3);         //weight, cost, item
		if (self.impulse == 4)
                  BuyGrenade(6, 4);         //weight, cost, item

			return;
	}
	if (self.currentmenu == "shop_pistols")
	{
		if (self.impulse == 1)
                  BuyWeapon(1, 5, 5);         //weight, cost, item
		if (self.impulse == 2)
                  BuyWeapon(2, 7, 6);         //weight, cost, item
		if (self.impulse == 3)
                  BuyWeapon(2, 9, 7);         //weight, cost, item
		if (self.impulse == 4)
                  BuyWeapon(2, 21, 8);         //weight, cost, item
		if (self.impulse == 5)
                  BuyWeapon(3, 14, 13);         //weight, cost, item
		if (self.impulse == 6)
                  BuyWeapon(3, 17, 14);         //weight, cost, item

			return;
	}
	if (self.currentmenu == "shop_shotguns")
	{
		if (self.impulse == 1)
                  BuyWeapon(3, 3, 9);         //weight, cost, item
		if (self.impulse == 2)
                  BuyWeapon(4, 7, 10);         //weight, cost, item
		if (self.impulse == 3)
                  BuyWeapon(5, 12, 11);         //weight, cost, item
		if (self.impulse == 4)
                  BuyWeapon(7, 34, 12);         //weight, cost, item

			return;
	}
	if (self.currentmenu == "shop_rifles")
	{
		if (self.impulse == 1)
                  BuyWeapon(3, 11, 15);         //weight, cost, item
		if (self.impulse == 2)
                  BuyWeapon(4, 21, 16);         //weight, cost, item
		if (self.impulse == 3)
                  BuyWeapon(5, 25, 17);         //weight, cost, item
		if (self.impulse == 4)
                  BuyWeapon(6, 28, 18);         //weight, cost, item
		if (self.impulse == 4)
                  BuyWeapon(5, 30, 19);         //weight, cost, item
		if (self.impulse == 4)
                  BuyWeapon(4, 32, 20);         //weight, cost, item
		if (self.impulse == 4)
                  BuyWeapon(7, 40, 21);         //weight, cost, item
		if (self.impulse == 4)
                  BuyWeapon(10, 45, 22);         //weight, cost, item

			return;
	}

	if (self.currentmenu == "shop_equipment")
	{
		if (self.impulse == 1)
                  BuyEquipment(20, 1);         //cost, item
		if (self.impulse == 2)
                  BuyEquipment(20, 2);         //cost, item
		if (self.impulse == 3)
                  BuyEquipment(20, 3);         //cost, item
		if (self.impulse == 4)
                  BuyEquipment(20, 4);         //cost, item
		if (self.impulse == 5)
                  BuyEquipment(20, 5);         //cost, item
		if (self.impulse == 6)
                  BuyEquipment(20, 6);         //cost, item
		if (self.impulse == 7)
                  BuyEquipment(20, 7);         //cost, item
		if (self.impulse == 8)
                  BuyEquipment(20, 8);         //cost, item
		if (self.impulse == 9)
                  BuyEquipment(20, 9);         //cost, item
		if (self.impulse == 10)
                  BuyEquipment(20, 10);         //cost, item

			return;
	}

	if (self.currentmenu == "shop_chems")
	{
		if (self.impulse == 1)
                  BuyChem(3, 1);         //cost, item
		if (self.impulse == 2)
                  BuyChem(5, 2);         //cost, item
		if (self.impulse == 3)
                  BuyChem(10, 3);         //cost, item
		if (self.impulse == 4)
                  BuyChem(12, 4);         //cost, item
		if (self.impulse == 5)
                  BuyChem(18, 5);         //cost, item
		if (self.impulse == 6)
                  BuyChem(21, 6);         //cost, item
	}

	if (self.currentmenu == "shop_other")
		return;


	if (self.currentmenu == "select_team")
	{
		if (self.impulse == 1)
		{
			bprint(2, self.netname);
			bprint(2, " has joined the rangers.\n");
			self.currentmenu = "confirm_team";
			DisplayMenu();
			self.team = 1;
			return;
		}
		if (self.impulse == 2)
		{
			bprint(2, self.netname);
			bprint(2, " has joined the raiders.\n");
			self.currentmenu = "confirm_team";
			DisplayMenu();
			self.team = 2;
			return;
		}

	}

	if (self.currentmenu == "select_skill")
	{
		sound (self, CHAN_WEAPON, "buttons/switch02.wav", TRUE, ATTN_NORM);

		if (self.impulse == 1)
		{
			self.currentmenu = "none";
			self.max_health = 80;
			self.class = 1;
			self.currentmenu = "confirm_skill";
			centerprint (self, "�your class will be�\n\nMedic - OK?\n�1� Yes     \n�2� No      \n");
			self.ghost = 0;
			return;
		}
		if ((self.impulse == 2))
		{
			self.currentmenu = "none";
			self.max_health = 70;
			self.class = 2;
			self.currentmenu = "confirm_skill";
			centerprint (self, "�your class will be�\n\nAssassin - OK?\n�1� Yes     \n�2� No      \n");
			self.ghost = 0;
			return;
		}
		if (self.impulse == 3)
		{
			self.currentmenu = "none";
			self.max_health = 100;
			self.class = 3;
			self.currentmenu = "confirm_skill";
			centerprint (self, "�your class will be�\n\nSoldiier - OK?\n�1� Yes     \n�2� No      \n");
			self.ghost = 0;
			return;
		}
		if (self.impulse == 4)
		{
			self.max_health = 80;
			self.currentmenu = "none";
			self.class = 4;
			self.currentmenu = "confirm_skill";
			centerprint (self, "�your class will be�\n\nScientist - OK?\n�1� Yes     \n�2� No      \n");
			self.ghost = 0;
			return;
		}
	}


		if (self.currentmenu == "confirm_team")
		{
			if (self.impulse == 1)
			{
				sound (self, CHAN_WEAPON, "buttons/switch02.wav", TRUE, ATTN_NORM);
				self.currentmenu = "select_skill";
				DisplayMenu();
				self.impulse = 0;
				return;
			}
			if (self.impulse == 2)
			{
				sound (self, CHAN_WEAPON, "buttons/switch02.wav", TRUE, ATTN_NORM);
				self.currentmenu = "select_team";
				DisplayMenu();
				self.impulse = 0;
				self.team = 0;
				return;
			}
		}
		if (self.currentmenu == "confirm_skill")
		{
			if (self.impulse == 1)
			{
				sound (self, CHAN_WEAPON, "buttons/switch02.wav", TRUE, ATTN_NORM);
				self.currentmenu = "none";
				PutClientInServer();
				self.impulse = 0;
				return;
			}
			if (self.impulse == 2)
			{
				sound (self, CHAN_WEAPON, "buttons/switch02.wav", TRUE, ATTN_NORM);
				self.currentmenu = "select_skill";
				DisplayMenu();
				self.impulse = 0;
				self.class = 0;
				return;
			}
		}

};