MySQLMud/data/
MySQLMud/doc/
MySQLMud/log/
MySQLMud/players/
MySQLMud/www/images/
socketmud/data/
socketmud/doc/
socketmud/log/
socketmud/players/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mud.h"
#include "mysql.h"

char        *   greeting;         /* the welcome greeting              */
char        *   motd;             /* the MOTD help file                */


/*
 * load_helps()
 *
 * Doesn't actually do much, just loads greeting and MOTD into memory
 */
void load_helps(void)
{
    greeting    = find_greeting();
    motd        = find_motd();
    return;
}



/*
 * do_help()
 *
 * Holder: Passes along to cmd_sql_help()
 */
void cmd_help (D_MOBILE * ch, char * arg)
{
    cmd_sql_help(ch, arg);
    return;
}

/*
 * cmd_sql_help()
 *
 * Finds the help file, and outputs it. Simplish
 */
void cmd_sql_help(D_MOBILE * ch, char * argument)
{
    char query[4096 * 2];
    MYSQL_RES *result;
    bool found = FALSE;
    
    if (argument[0] == '\0')
    {
        sql_help_summary(ch);
        return;
    }

    snprintf(query, sizeof(query) +1, "SELECT * FROM vand_help");
    mysql_safe_query(query);
    result = mysql_store_result(&mysqlconn);

    while ((row = mysql_fetch_row(result)))
    {
        if (!is_name (argument, row[2]))
        {
            ptc(ch, "[ID: %d] Help Topic: %s [%d]\n", atoi(row[0]), row[2], atoi(row[1]));
            ptc(ch, "%s\n", row[3]);
            found = TRUE;
        }
    }
    if (!found)
    {
        ptc(ch, "No help entry found for '%s'\n", argument);
        ptc(ch, "Logging invalid help. We're always looking to better the mud =)\n");
        mysql_log_ohelp(ch->name, argument);
    }
    return;
}

/*
 * Sql_help_summary()
 *
 * Displays all possible help files.
 */
void sql_help_summary (D_MOBILE * ch)
{
    char query[4096 * 2];
    MYSQL_RES *result;
    int col = 0;

    snprintf(query, sizeof(query) +1, "SELECT * FROM vand_help");
    mysql_safe_query(query);
    result = mysql_store_result(&mysqlconn);

    ptc(ch, "\n********** Vandagard Help System *********\n\n  Valid Helps:\n\n");

    while ((row = mysql_fetch_row(result)))
    {
        ptc(ch, "%-15s ", row[2]);
        if (++col % 3 == 0)
            ptc(ch, "\n");
    }
    ptc(ch, "\n");
    return;
}


/*
 * find_greeting()
 *
 * Hmm, seems i missed something, fix me later
 */
char * find_greeting(void)
{
    char query[4096 * 2];
    MYSQL_RES *result;
    
    snprintf(query, sizeof(query) +1, "SELECT * FROM vand_help WHERE keywords='greeting' LIMIT 1");
    mysql_safe_query(query);
    result = mysql_store_result(&mysqlconn);
    
    while ((row = mysql_fetch_row(result)))
        return row[3];

    return "Error";
}

/*
 * find_motd()
 *
 * Hmm, seems i missed something, fix me later
 */
char * find_motd(void)
{
    char query[4096 * 2];
    MYSQL_RES *result;
    
    snprintf(query, sizeof(query) +1, "SELECT * FROM vand_help WHERE keywords='motd' LIMIT 1");
    mysql_safe_query(query);
    result = mysql_store_result(&mysqlconn);
    
    while ((row = mysql_fetch_row(result)))
        return row[3];

    return "Error";
}

/*
 * cmd_help_dump()
 *
 * Dumps all OLD helps into SQL database.
 */
void do_sql_help_dump(D_MOBILE * ch, char *arg)
{
    /*
    char query[8096 * 2];
    HELP_DATA *pHelp;

    for (pHelp = help_first; pHelp != NULL; pHelp = pHelp->next)
    {
        snprintf(query, sizeof(query) +1, "INSERT INTO `vand_help` ( `id` , `level` , `keywords` , `text` ) VALUES ( NULL , '%d', '%s', '%s');",
        pHelp->level,
        pHelp->keyword,
        pHelp->text);
        MySQLQuery(query);
    }
    */
    return;
}

/*
 * mysql_log_ohelp()
 *
 * Logs helps that don't exist for betterment of the mud.
 */
void mysql_log_ohelp(char * who, char * topic)
{
    char query[4096];

    snprintf(query, sizeof(query) + 1, "INSERT INTO `vand_help_add` ( `id` , `who` , `topic` ) VALUES ( NULL , '%s', '%s' );",
             who, topic);
    MySQLQuery(query);
    return;
}

/*
 * cmd_orphanhelps()
 *
 * Admin util to see orphan (ie non-existant)
 * help files players have asked for.
 *
 * TODO: Expand to remove entries/add entries
 */
void cmd_orphanhelps(D_MOBILE * ch, char * arg)
{
    char query[4096 * 2];
    MYSQL_RES *result;

    ptc(ch, "**** Orphan Helps:\n");
    ptc(ch, "  [#w%-3s#n] #W%-15s#n | #c%s#n\n", "ID", "Who asked", "Topic Wanted");

    snprintf(query, sizeof(query) +1, "SELECT * FROM vand_help_add");
    mysql_safe_query(query);
    result = mysql_store_result(&mysqlconn);

    while ((row = mysql_fetch_row(result)))
    {
        ptc(ch, "  [#w%-3d#n] #W%-15s#n | #c%s#n\n", atoi(row[0]), row[1], row[2]);
    }
    ptc(ch, "\n");
}