int digit_from_sql(char *xd_database, char *xt_table, char *xf_callfield, char *xf_datafield, int plr_ID)
{
    MySQL my;
    char szQueryText[250];
    MYSQL_RES *My_result = NULL;

    snprintf(szQueryText, sizeof(szQueryText), "SELECT * FROM %s.%s WHERE %s = '%d'", xd_database, xt_table, xf_callfield, plr_ID);
    My_result = MySQL__query(szQueryText);

    if (my.Query(szQueryText) > 0)
    {
        my.NextRow();
        int digit_output = atoi(my.GetData(xf_datafield));
        MySQL__endquery(My_result);
        return(digit_output);
    }
    MySQL__endquery(My_result);
    return(0);
}

void text_from_sql(struct char_data *ch, int flag)
{
	MySQL my;
	char szQueryText[250];
	MYSQL_RES *My_result = NULL;

	snprintf(szQueryText, sizeof(szQueryText), "SELECT * FROM defined_database.xt_text_files WHERE xf_id = '%d'", flag);
	My_result = MySQL__query(szQueryText);

	if (my.Query(szQueryText) > 0)
	{
		my.NextRow();
		char *text_output = my.GetData("xf_sql_text");
		MSGP(ch, 1, "%s", text_output);
		MySQL__endquery(My_result);
		return;
	}
	MySQL__endquery(My_result);
	return;
}


// Subcommands for do_play
#define SCMD_ALCAZAR_ROSTER 1


// Some various defines
#define SQL_ALCAZAR_RULES	51
#define stri_cmp _stricmp
#define C_R  "\033[31m"			// Red
#define C_BrR  "\033[1;31m"		// Bright Red
#define C_G  "\033[32m"			// Green
#define C_BrG "\033[1;32m"		// Bright Green
#define C_C  "\033[36m"			// Cyan
#define C_BrC  "\033[1;36m"		// Bright Cyan


// General stuff
const char *NOPERSON = "I could not find who you were referring to.";


// Message Player (used to be defined as the old send_to_char function
size_t MSGP(struct char_data *ch, int line_breaks, const char *messg, ...)
{
	if (ch->desc && messg && *messg)
	{
		size_t left;
		va_list args;

		va_start(args, messg);
		left = vwrite_to_output(ch->desc, messg, args);

		switch (line_breaks)
		{
		case 0:
			break;
		case 1:
			vwrite_to_output(ch->desc, "\r\n", 0);
			break;
		case 2:
			vwrite_to_output(ch->desc, "\r\n\r\n", 0);
			break;
		case 3:
			vwrite_to_output(ch->desc, "\r\n\r\n\r\n", 0);
			break;
		case 4:
			vwrite_to_output(ch->desc, "\r\n\r\n\r\n\r\n", 0);
			break;
		case 5:
			vwrite_to_output(ch->desc, "\r\n\r\n\r\n\r\n\r\n", 0);
			break;
		case 6:
			vwrite_to_output(ch->desc, "\r\n\r\n\r\n\r\n\r\n\r\n", 0);
			break;
		case 7:
			vwrite_to_output(ch->desc, "\r\n\r\n\r\n\r\n\r\n\r\n\r\n", 0);
			break;
		default:
			break;
		}

		va_end(args);
		return left;
	}
	return 0;
}