/***********************************************************************
 *  The following snippet was written by Ryan Loughran for             *
 *  Rom 2.4 specific MUDs.  					       * 
 * 								       *
 *  Email: RPL2932@Gmail.com                                           *
 *       							       *
 *  Send any comments, flames, bug-reports, suggestions, requests,     * 
 *  to the above email address. 				       *
 ***********************************************************************/

/*Add the ACT_IS_RESTRINGER flag to the others in MERC.H
 *Search for: ACT_GAIN
 */
 
 #define ACT_IS_RESTRINGER	(Z)    /*Make sure you use an open bit*/

/*Add the ACT_IS_RESTRINGER flag to the others in handler.c
 *Search for: ACT_GAIN
 */
 if (act_flags & ACT_IS_RESTRINGER)
     strcat (buf, " restringer");



/*Add the following code to ACT_INFO.C or anywhere you see fit.
 *I use Questpoints as the currency, you can easily change that
 *To whatever you want to use.
 *Most of this is taken from the DO_STRING command, and modified
 *For player restringing.  Also thanks to Rhaelar from SDMUD
 *For one section of this code (noted later).
 */
 


/*Restring code by Ryan Loughran from Echoes of Time.
 *Email: Rpl2932@gmail.com
 *Date: December 9, 2006
 *Feel free to include this comment, or remove it!
 */
void do_restring (CHAR_DATA * ch, char *argument)
{
    char type[MAX_INPUT_LENGTH];    char arg1[MAX_INPUT_LENGTH];
    char arg2[MAX_INPUT_LENGTH];
    char arg3[MAX_INPUT_LENGTH];
    CHAR_DATA *mob;
    OBJ_DATA *obj;

    smash_tilde (argument);
    argument = one_argument (argument, arg1);
    argument = one_argument (argument, arg2);
    strcpy (arg3, argument);
    
    /*Stripped from SDMUD by Rhaelar.  Thanks ;)
     */

    for ( mob = ch->in_room->people; mob != NULL; mob = mob->next_in_room )
    if ( IS_NPC ( mob ) && IS_SET ( mob->act, ACT_IS_RESTRINGER ) )
            break;
    
    if ( mob == NULL || !can_see ( ch, mob ) )
    {
        send_to_char ( "{MYou can't do that here.{x\n\r", ch );
        return;
    }
    
    /*QP Check*/
    if ( ch->questpoints < 300 )
       {
       send_to_char("{MRestrings cost {C300{M qusetpoints, you do not have enough.{x\n\r", ch);
       return;
       }
    

    if (/*type[0] == '\0'*/arg1[0] == '\0' || arg2[0] == '\0'
        || arg3[0] == '\0')
    {
        send_to_char ("{CSyntax:{x\n\r", ch);
        send_to_char ("  {GRestring <{Cname{G> <{Wfield{G> <{Cstring{G>{x\n\r", ch);
        send_to_char ("    {Wfields: {Cname {Wshort {Glong{x \n\r", ch);
        return;
    }

    if ( ( obj = get_obj_world ( ch, arg1 ) ) == NULL )
    {
        send_to_char ( "{MYou do not have that item.{x\n\r", ch );
        return;
    }



        if (!str_prefix (arg2, "name"))
        {
            free_string (obj->name);
            obj->name = str_dup (arg3);
            ch->questpoints -= 100;
            printf_to_char(ch, "{MHere you are {c%s{M.{x\n\r", ch->name);
            send_to_char("{MYour items {Cname{M has been restrung.{X\n\r", ch);
            send_to_char("{MYou have been charged {r100{M questpoints.  Thank you.{x\n\r", ch);
            return;
        }

        if (!str_prefix (arg2, "short"))
        {
            free_string (obj->short_descr);
            obj->short_descr = str_dup (arg3);
            ch->questpoints -= 150;
            printf_to_char(ch, "{MHere you are {c%s{M.{x\n\r", ch->name);
            send_to_char("{MYour items {Gshort description{M has been restrung.{X\n\r", ch);
            send_to_char("{MYou have been charged {r150{M questpoints.  Thank you.{x\n\r", ch);
            return;
        }

        if (!str_prefix (arg2, "long"))
        {
            free_string (obj->description);
            obj->description = str_dup (arg3);
            ch->questpoints -= 200;
            printf_to_char(ch, "{MHere you are {c%s{M.{x\n\r", ch->name);
            send_to_char("{MYour items {Wlong description{M has been restrung.{x\n\r", ch);
            send_to_char("{MYou have been charged {r200{M questpoints.  Thank you.{x\n\r", ch);
            return;
        }

       
}