/*
 *	Item generator 2, a simpler approch to the creation system
 */

#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"

#define GEN_NOTHING	1
#define GEN_GOLD	2
#define GEN_WEAPON	3
#define GEN_ARMOR	4
#define GEN_MAGIC	5
#define GEN_RING	6
#define GEN_AMMY	7

OBJ_DATA *
gen_main (OBJ_DATA * obj, int level)
{
	int main_selection = number_range(1, 100);
//	obj = create_object (get_obj_index (909), 0);

	switch(main_selection)
	{	default:
		case 1:  case 2:  case 3:  case 4:  case 5:
		case 6:  case 7:  case 8:  case 9:  case 10:
		case 11: case 12: case 13: case 14: case 15:
		case 16: case 17: case 18: case 19: case 20:
                new_gen_gold(obj, level);
		break;

		case 21: case 22: case 23: case 24: case 25:
		case 26: case 27: case 28: case 29: case 30:
		case 31: case 32: case 33: case 34: case 35:
		case 36: case 37: case 38: case 39: case 40:
		case 41: case 42: case 43: case 44: case 45:
		case 46: case 47: case 48: case 49: case 50:
		new_gen_gold(obj, level);
		break;

		case 51: case 52: case 53: case 54: case 55:
		case 56: case 57: case 58: case 59: case 60:
		case 61: case 62: case 63: case 64: case 65:
		new_gen_armor(obj, level);
		break;

		case 66: case 67: case 68: case 69: case 70:
		case 71: case 72: case 73: case 74: case 75:
		case 76: case 77: case 78: case 79: case 80:
		new_gen_weapon(obj, level);
		break;

		case 81: case 82: case 83: case 84: case 85:
		case 86: case 87: case 88: case 89: case 90:
		case 91: case 92: case 93: case 94: case 95:
		new_gen_magic(obj, level);
		break;

		case 96: case 97: case 98: case 99:
		switch(number_range(1, 2))
		{	default:
			case 1:
			new_gen_ring(obj, level);
			break;
			case 2:
			new_gen_ammy(obj, level);
			break;
		}
		case 100:
		gen_rare(obj, level);
		break;
	}

return(obj);
}


OBJ_DATA *
gen_rare (OBJ_DATA * obj, int level)
{
	int main_selection = number_range(1, 100);

	switch(main_selection)
	{	default:
		case 1:  case 2:  case 3:  case 4:  case 5:
		case 6:  case 7:  case 8:  case 9:  case 10:
		case 11: case 12: case 13: case 14: case 15:
		case 16: case 17: case 18: case 19: case 20:
		case 21: case 22: case 23: case 24: case 25:
		case 26: case 27: case 28: case 29: case 30:
		case 31: case 32: case 33: case 34: case 35:
		case 36: case 37: case 38: case 39: case 40:
		gen_armor_rare(obj, level);
		break;
		case 41: case 42: case 43: case 44: case 45:
		case 46: case 47: case 48: case 49: case 50:
		case 51: case 52: case 53: case 54: case 55:
		case 56: case 57: case 58: case 59: case 60:
		case 61: case 62: case 63: case 64: case 65:
		case 66: case 67: case 68: case 69: case 70:
		case 71: case 72: case 73: case 74: case 75:
		case 76: case 77: case 78: case 79: case 80:
		gen_weapon_rare(obj, level);
		break;
		case 81: case 82: case 83: case 84: case 85:
		case 86: case 87: case 88: case 89: case 90:
		gen_ring_rare(obj, level);
		break;
		case 91: case 92: case 93: case 94: case 95:
		case 96: case 97: case 98: case 99:
		gen_ammy_rare(obj, level);
		break;
		case 100:
		gen_relic(obj, level);
		break;
	}
return(obj);
}

OBJ_DATA *
gen_relic (OBJ_DATA * obj, int level)
{
	int main_selection = number_range(1, 100);

	switch(main_selection)
	{	default:
		case 1:  case 2:  case 3:  case 4:  case 5:
		case 6:  case 7:  case 8:  case 9:  case 10:
		case 11: case 12: case 13: case 14: case 15:
		case 16: case 17: case 18: case 19: case 20:
		case 21: case 22: case 23: case 24: case 25:
		case 26: case 27: case 28: case 29: case 30:
		case 31: case 32: case 33: case 34: case 35:
		case 36: case 37: case 38: case 39: case 40:
		gen_armor_relic(obj, level);
		break;
		case 41: case 42: case 43: case 44: case 45:
		case 46: case 47: case 48: case 49: case 50:
		case 51: case 52: case 53: case 54: case 55:
		case 56: case 57: case 58: case 59: case 60:
		case 61: case 62: case 63: case 64: case 65:
		case 66: case 67: case 68: case 69: case 70:
		case 71: case 72: case 73: case 74: case 75:
		case 76: case 77: case 78: case 79: case 80:
		gen_weapon_relic(obj, level);
		break;
		case 81: case 82: case 83: case 84: case 85:
		case 86: case 87: case 88: case 89: case 90:
		gen_ring_relic(obj, level);
		break;
		case 91: case 92: case 93: case 94: case 95:
		case 96: case 97: case 98: case 99:
		gen_ammy_relic(obj, level);
		break;
		case 100:
		gen_artifact(obj, level);
		break;
	}
return(obj);
}