From f0d592489162b8bf7740bbc3db038f81aa3af7e8 Mon Sep 17 00:00:00 2001 From: maximius Date: Wed, 30 Sep 2009 03:29:08 -0700 Subject: *Cleanup, add two new functions, attempt to fix arena point flushing for offline players. --HG-- branch : trunk --- src/shared/Database/Database.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/shared/Database/Database.cpp') diff --git a/src/shared/Database/Database.cpp b/src/shared/Database/Database.cpp index 8b4de01e8db..9a43f72f272 100644 --- a/src/shared/Database/Database.cpp +++ b/src/shared/Database/Database.cpp @@ -21,6 +21,9 @@ #include "DatabaseEnv.h" #include "Config/ConfigEnv.h" +#include "Common.h" +#include "../../game/UpdateFields.h" + #include #include #include @@ -172,6 +175,26 @@ bool Database::PExecute(const char * format,...) return Execute(szQuery); } +bool Database::_UpdateDataBlobValue(const uint32 guid, const uint32 field, const uint32 value) +{ + return PExecute( + "UPDATE characters SET data=" + "CONCAT(SUBSTRING_INDEX(`data`,' ',%u),' '," + "SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',%u),' ',-1)+%u," + "' ',SUBSTRING_INDEX(`data`,' ',%u)) WHERE guid=%u", + field, field+1, value, -int32(PLAYER_END-field)-1, guid); +} + +bool Database::_SetDataBlobValue(const uint32 guid, const uint32 field, const uint32 value) +{ + return PExecute( + "UPDATE characters SET data=" + "CONCAT(SUBSTRING_INDEX(`data`,' ',%u),' '," + "%u,' ',SUBSTRING_INDEX(`data`,' ',%u))," + "WHERE guid=%u", + field, field+1, value, -int32(PLAYER_END-field)-1, guid); +} + bool Database::DirectPExecute(const char * format,...) { if (!format) -- cgit v1.2.3