diff --git a/changelog.txt b/changelog.txt index ac7459a20..ea5816bde 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,18 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- +== 01/28/2015 == +Akkadius: Added Logs::DebugQuest category per request from Trevius (Great idea) + - Exported quest::debug(log_message, [debug_level = 1) + - Example: + quest::debug("This is a test debug message, level 1 (default)"); + quest::debug("This is a test debug message, level 1", 1); + quest::debug("This is a test debug message, level 2", 2); + quest::debug("This is a test debug message, level 3", 3); + + Result: http://i.imgur.com/6VoafGE.png + - Uses traditional logging system to output this category + - Required MySQL Source in Database version 9070 + == 01/27/2015 == Trevius: Removed "Mercenary Debug:" from the Mercenary Log entries. Trevius: Resolved duplicate "You have no Mercenaries" messages when zoning without owning a Mercenary. diff --git a/common/eqemu_logsys.h b/common/eqemu_logsys.h index 491ded3c6..1bd63d5b5 100644 --- a/common/eqemu_logsys.h +++ b/common/eqemu_logsys.h @@ -77,6 +77,7 @@ namespace Logs{ MySQLError, MySQLQuery, Mercenaries, + QuestDebug, MaxCategoryID /* Don't Remove this*/ }; @@ -120,6 +121,7 @@ namespace Logs{ "MySQL Error", "MySQL Query", "Mercenaries", + "Quest Debug", }; } @@ -141,7 +143,7 @@ public: be checked against to see if that piped output is set to actually process it for the category and debug level */ void Out(Logs::DebugLevel debug_level, uint16 log_category, std::string message, ...); - void SetCurrentTimeStamp(char* time_stamp); /* Used in file logs to prepend a timestamp entry for logs */ + void SetCurrentTimeStamp(char* time_stamp); /* Used in file logs to prepend a timestamp entry for logs */ void StartFileLogs(const std::string &log_name = ""); /* Used to declare the processes file log and to keep it open for later use */ /* diff --git a/common/version.h b/common/version.h index 624418df5..33d089998 100644 --- a/common/version.h +++ b/common/version.h @@ -30,7 +30,7 @@ Manifest: https://github.com/EQEmu/Server/blob/master/utils/sql/db_update_manifest.txt */ -#define CURRENT_BINARY_DATABASE_VERSION 9069 +#define CURRENT_BINARY_DATABASE_VERSION 9070 #define COMPILE_DATE __DATE__ #define COMPILE_TIME __TIME__ #ifndef WIN32 diff --git a/utils/sql/db_update_manifest.txt b/utils/sql/db_update_manifest.txt index e76c74852..4a49c09c9 100644 --- a/utils/sql/db_update_manifest.txt +++ b/utils/sql/db_update_manifest.txt @@ -323,6 +323,7 @@ 9067|2015_01_21_npc_types_update.sql|SHOW COLUMNS FROM `npc_types` LIKE 'light'|empty| 9068|2015_01_15_logsys_categories_table.sql|SHOW TABLES LIKE 'logsys_categories'|empty| 9069|2015_01_25_logsys_Mercenaries_category.sql|SELECT * FROM `logsys_categories` WHERE `log_category_description` LIKE 'Mercenaries'|empty| +9070|2015_01_28_quest_debug_log_category.sql|SELECT * FROM `logsys_categories` WHERE `log_category_description` LIKE 'Quest Debug'|empty| # Upgrade conditions: # This won't be needed after this system is implemented, but it is used database that are not diff --git a/utils/sql/git/required/2015_01_28_quest_debug_log_category.sql b/utils/sql/git/required/2015_01_28_quest_debug_log_category.sql new file mode 100644 index 000000000..0f4f22807 --- /dev/null +++ b/utils/sql/git/required/2015_01_28_quest_debug_log_category.sql @@ -0,0 +1 @@ +INSERT INTO `logsys_categories` (`log_category_id`, `log_category_description`, `log_to_gmsay`) VALUES ('38', 'Quest Debug', '1') \ No newline at end of file diff --git a/zone/embparser_api.cpp b/zone/embparser_api.cpp index 7a6989c10..8b49f01b2 100644 --- a/zone/embparser_api.cpp +++ b/zone/embparser_api.cpp @@ -23,6 +23,7 @@ #include "../common/global_define.h" #include "../common/misc_functions.h" +#include "../common/eqemu_logsys.h" #include "embparser.h" #include "embxs.h" @@ -3493,6 +3494,37 @@ XS(XS__crosszonesignalnpcbynpctypeid) XSRETURN_EMPTY; } +XS(XS__debug); +XS(XS__debug) +{ + dXSARGS; + if (items != 1 && items != 2){ + Perl_croak(aTHX_ "Usage: debug(message, [debug_level])"); + } + else{ + std::string log_message = (std::string)SvPV_nolen(ST(0)); + uint8 debug_level = 1; + + if (items == 2) + debug_level = (uint8)SvIV(ST(1)); + + if (debug_level > Logs::Detail) + return; + + if (debug_level == Logs::General){ + Log.Out(Logs::General, Logs::QuestDebug, log_message); + } + else if (debug_level == Logs::Moderate){ + Log.Out(Logs::Moderate, Logs::QuestDebug, log_message); + } + else if (debug_level == Logs::Detail){ + Log.Out(Logs::Detail, Logs::QuestDebug, log_message); + } + } + XSRETURN_EMPTY; +} + + /* This is the callback perl will look for to setup the quest package's XSUBs @@ -3579,6 +3611,7 @@ EXTERN_C XS(boot_quest) newXS(strcpy(buf, "crosszonesignalclientbycharid"), XS__crosszonesignalclientbycharid, file); newXS(strcpy(buf, "crosszonesignalclientbyname"), XS__crosszonesignalclientbyname, file); newXS(strcpy(buf, "crosszonesignalnpcbynpctypeid"), XS__crosszonesignalnpcbynpctypeid, file); + newXS(strcpy(buf, "debug"), XS__debug, file); newXS(strcpy(buf, "delglobal"), XS__delglobal, file); newXS(strcpy(buf, "depop"), XS__depop, file); newXS(strcpy(buf, "depop_withtimer"), XS__depop_withtimer, file);