/
area/city/
area/crypts/
area/guilds/
area/psuedowild/
area/religion/
data/documents/MPDocs/
data/html/
data/mobprogs/
data/quest/
data/world/
data/world/_utilities/
data/world/images/
design/html/
notes/
player/
#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "merc.h"
#include "interp.h"
#include "tables.h"
#include "rig_tables.h"
#include "rig.h"


char *const gems1[12] =
{
   "Banded Agate", "Eye Agate", "Moss Agate", "Azurite", "Blue Quartz", "Hematite",
   "Lapus Lazuli", "Malachite", "Obsidian", "Rhodochrosite", "Tiger Eye", "Freshwater Pearl"
};

char *const gems2[16] =
{
   "Bloodstone", "Carnelian", "Chalcedony", "Chrysoprase", "Citrine", "Iolite", "Jasper",
   "Moonstone", "Peridot", "Quartz", "Sadonyx", "Rose Quartz", "Smokey Quartz", "Star Rose Quartz",
   "Zircon", "Black Zircon"
};

char *const gems3[16] =
{
   "Amber", "Amethyst", "Chrysoberyl", "Coral", "Red Garnet", "Brown-Green Garnet", "Jade", "Jet",
   "White Pearl", "Golden Pearl", "Pink Pearl", "Silver Pearl", "Red Spinel", "Red-Brown Spinel",
   "Deep Green Spinel", "Tourmaline"
};

char *const gems4[6] =
{
   "Alexandrite", "Aquamarine", "Violet Garnet", "Black Pearl", "Deep Blue Spinel", "Golden Yellow Topaz"
};

char *const gems5[7] =
{
   "Emerald", "White Opal", "Black Opal", "Fire Opal", "Blue Sapphire", "Tomb Jade", "Water Opal"
};

char *const gems6[11] =
{
   "Bright Green Emerald", "Blue-White Diamond", "Pink Diamond", "Brown Diamond", "Blue Diamond",
   "Jacinth", "Black Sapphire", "Ruby", "Star Ruby", "Blue Star Sapphire", "Black Star Sapphire"
};


OBJ_DATA * create_gem (OBJ_DATA * obj, int type)
{
    char name_set[MSL];
    char shor_set[MSL];
    char long_set[MSL];
    char mate_set[MSL];
    char *gname;
    int gemname, cost;
    int gemtable = number_range( 1, 100 );

    free_string(obj->name);
    free_string(obj->short_descr);
    free_string(obj->description);
    free_string(obj->material);

    if( gemtable <= 25 )
    {
        gemname = number_range( 0, 11 );
        gname = gems1[gemname];
        cost = 10;
    }
    else if( gemtable <= 50 )
    {
        gemname = number_range( 0, 15 );
        gname = gems2[gemname];
        cost = 50;
    }
    else if( gemtable <= 70 )
    {
        gemname = number_range( 0, 15 );
        gname = gems3[gemname];
        cost = 100;
    }
    else if( gemtable <= 90 )
    {
        gemname = number_range( 0, 5 );
        gname = gems4[gemname];
        cost = 500;
    }
    else if( gemtable <= 99 )
    {
        gemname = number_range( 0, 6 );
        gname = gems5[gemname];
        cost = 1000;
    }
    else
    {
        gemname = number_range( 0, 10 );
        gname = gems6[gemname];
        cost = 5000;
    }

    obj->item_type = ITEM_GEM;
    obj->cost = cost;
    sprintf(name_set, "%s gem",                             gname);
    sprintf(shor_set, "%s",                                 gname);
    sprintf(long_set, "A chunk of %s lies here gleaming.",  gname);
    sprintf(mate_set, "%s",                                 gname);
    obj->name           = str_dup (name_set);
    obj->short_descr    = str_dup (shor_set);
    obj->description    = str_dup (long_set);
    obj->material       = str_dup (mate_set);
    obj->item_type      = ITEM_GEM;
    obj->wear_flags     = ITEM_TAKE;
    obj->wear_flags    += ITEM_HOLD;

    return obj;
}

/*
 * create_beer()
 *
 * Generates a 'spell' beer, ie non-healing
 */ 
OBJ_DATA * create_beer (OBJ_DATA* obj, int type)
{
    char name_set[MSL];
    char shor_set[MSL];
    char long_set[MSL];
    char buf[MSL];
    int spell_num = 0;
    int spell_name = -1;
    int total_obj_value = 0;

    /* Gen random scroll */
    
    if (type == RIG_RANDOM)
        spell_name = number_range(0, rig_beer_max() - 1);
    else 
        spell_name = type;
    
    if (spell_name == -1)
        spell_name = 0;

    free_string(obj->name);
    free_string(obj->short_descr);
    free_string(obj->description);
 
    sprintf(buf, "%s",  rig_beer_table[spell_name].name);
    spell_num = skill_lookup (buf);

    sprintf(name_set, "%s beer",                                            rig_beer_table[spell_name].name);
    sprintf(shor_set, "a tankered labeled '%s'",                            rig_beer_table[spell_name].name);
    sprintf(long_set, "a tankered labeled '%s' is on the ground here.",     rig_beer_table[spell_name].name);
    obj->name          = str_dup (name_set);
    obj->short_descr   = str_dup (shor_set);
    obj->description   = str_dup (long_set);

    obj->item_type      = ITEM_DRINK_CON;
    obj->value[0]       = number_range(20, 25);
    obj->value[1]       = 1;
    obj->value[2]       = 1;
    obj->value[3]       = 1;
    obj->value[4]       = 1;
    obj->wear_flags     = ITEM_TAKE;
    obj->wear_flags    += ITEM_HOLD;

    total_obj_value     = rig_beer_table[spell_name].cost;
    obj->cost           = (total_obj_value * number_range(2, 3));

    return (obj);
}


OBJ_DATA * create_food(OBJ_DATA * obj, int type)
{
    char name_set[MSL];
    char shor_set[MSL];
    char long_set[MSL];
    int obj_type;
    
    if (type == RIG_RANDOM)
        obj_type = number_range(0, rig_food_max() - 1);
    else 
        obj_type = type;
    
    if (obj_type == -1)
        obj_type = 0;
    
    free_string(obj->name);
    free_string(obj->short_descr);
    free_string(obj->description);
    free_string(obj->material);

    sprintf(name_set, "%s food",                     rig_food_table[obj_type].name);
    sprintf(shor_set, "%s",                          rig_food_table[obj_type].name);
    sprintf(long_set, "%s is on the ground here.",   rig_food_table[obj_type].name);
    obj->name           = str_dup (name_set);
    obj->short_descr    = str_dup (shor_set);
    obj->description    = str_dup (long_set);
    obj->material       = str_dup (long_set);

    obj->item_type      = ITEM_FOOD;
    obj->cost           = rig_food_table[obj_type].cost;
    obj->value[0]       = rig_food_table[obj_type].cost;
    obj->value[1]       = rig_food_table[obj_type].cost;
    obj->value[4]       = 0;
    obj->level          = 1;
    obj->wear_flags     = ITEM_TAKE;
    obj->wear_flags    += ITEM_HOLD;

    return obj;
}

OBJ_DATA * create_gold(OBJ_DATA * obj, int value)
{
    char name_set[MSL];
    char shor_set[MSL];
    char long_set[MSL];

    free_string(obj->name);
    free_string(obj->short_descr);
    free_string(obj->description);

    sprintf(name_set, "%d silver money gcash", value);
    sprintf(shor_set, "%d silver pieces", value);
    sprintf(long_set, "a pile of %d silver piecees is on the ground here.", value);
    obj->name          = str_dup (name_set);
    obj->short_descr   = str_dup (shor_set);
    obj->description   = str_dup (long_set);
    obj->item_type     = ITEM_MONEY;
    obj->value[0]      = value;
    obj->wear_flags    = ITEM_TAKE;
    return obj;
}