/************************************************************** * FFTacticsMUD : misc.cpp * ************************************************************** * (c) 2002 Damien Dailidenas (Trenton). All rights reserved. * **************************************************************/ #include "main.h" #include <strstream> #include <iomanip> #include "mysql/mysql.h" int gcf(const int x, const int y) { int a; if(!x || !y) return 1; for(a = (x > y ? x : y); a > 0; --a) if(x % a == 0 && y % a == 0) break; return a; } string print_flags(const int flag) { int count; string str; for(count = 0; count < 32; count++) { if(IS_SET(flag, 1 << count)) { if(count < 26) str += ('A' + count); else str += ('a' + (count - 26)); } } if(str.empty()) str = '0'; return str; } void mysql_print_res(CH *ch, const string query) { MYSQL mysql; MYSQL_RES *res; MYSQL_ROW row; MYSQL_FIELD *field; unsigned short x, y, length; mysql_init(&mysql); if(!mysql_real_connect(&mysql, DB_LOC, DB_USER, DB_PASS, DB_NAME, 0, NULL, 0)) return; ostrstream ost_query; ost_query << query << ends; mysql_query(&mysql, ost_query.str()); res = mysql_store_result(&mysql); ostrstream ost; string str = "+"; for(x = 0; x < mysql_num_fields(res); ++x) { field = mysql_fetch_field_direct(res, x); length = (strlen(field->name) > field->max_length) ? strlen(field->name) : field->max_length; for(y = 0; y < length + 2; ++y) str += "-"; str += "+"; } str += ENDL; ost << str << '|'; for(x = 0; x < mysql_num_fields(res); ++x) { field = mysql_fetch_field_direct(res, x); ost << ' ' << setiosflags(ios::left) << setw((strlen(field->name) > field->max_length ? strlen(field->name) : field->max_length) + 1) << capitalize(field->name).c_str() << "|"; } ost << ENDL << str; string spacer; while((row = mysql_fetch_row(res))) { ost << '|'; for(x = 0; x < mysql_num_fields(res); ++x) { field = mysql_fetch_field_direct(res, x); length = (strlen(field->name) > field->max_length) ? strlen(field->name) : field->max_length; spacer = ""; for(y = strlen(row[x]); y < length; ++y) spacer += ' '; ost << " {0" << (is_num(row[x]) ? spacer : "{0") << row[x] << (!is_num(row[x]) ? spacer : "{0") << " |"; } ost << ENDL; } ost << CLEAR << str << ends; ch->printf(ost.str()); mysql_free_result(res); mysql_close(&mysql); return; } const struct colors color[] = { {}, { "{1" }, { "{!" }, { "{2" }, { "{@" }, { "{3" }, { "{#" }, { "{4" }, { "{B" }, { "{5" }, { "{M" }, { "{6" }, { "{^" }, { "{7" }, { "{&" }, { "{8" }, { "{0" }, {} }; void do_time(CH *ch, string argument = "") { ch->printf("System: " + str_time()); return; } const struct month month_table[] = { {}, {"January", 31}, {"February", 28}, {"March", 31}, {"April", 30}, {"May", 31}, {"June", 30}, {"July", 31}, {"August", 31}, {"September", 31}, {"October", 31}, {"November", 30}, {"December", 31}, {} };