aboutsummaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authormaximius <none@none>2009-09-30 04:18:07 -0700
committermaximius <none@none>2009-09-30 04:18:07 -0700
commit3c43ef715754ba2762b7e4c9006957074c84366d (patch)
tree6ef1e024e01946f532c970e6d46d377d084a8588 /src/shared
parent57370773711ee8270765e73bebe34ff1ca92e43f (diff)
*Better support for negatives.
--HG-- branch : trunk
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/Database/Database.cpp4
-rw-r--r--src/shared/Database/Database.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/shared/Database/Database.cpp b/src/shared/Database/Database.cpp
index 184a34fb2ce..b307444ff54 100644
--- a/src/shared/Database/Database.cpp
+++ b/src/shared/Database/Database.cpp
@@ -175,12 +175,12 @@ bool Database::PExecute(const char * format,...)
return Execute(szQuery);
}
-bool Database::_UpdateDataBlobValue(const uint32 guid, const uint32 field, const uint32 value)
+bool Database::_UpdateDataBlobValue(const uint32 guid, const uint32 field, const int32 value)
{
return PExecute(
"UPDATE characters SET data="
"CONCAT(SUBSTRING_INDEX(`data`,' ',%u),' ',"
- "SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',%u),' ',-1)+%u,"
+ "GREATEST(SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',%u),' ',-1)+%u,0),"
"' ',SUBSTRING_INDEX(`data`,' ',%u)) WHERE guid=%u",
field, field+1, value, -int32(PLAYER_END-field)-1, guid);
}
diff --git a/src/shared/Database/Database.h b/src/shared/Database/Database.h
index e7cc028548e..6172a61c5f9 100644
--- a/src/shared/Database/Database.h
+++ b/src/shared/Database/Database.h
@@ -102,7 +102,7 @@ class TRINITY_DLL_SPEC Database
virtual bool DirectExecute(const char* sql) = 0;
bool DirectPExecute(const char *format,...) ATTR_PRINTF(2,3);
- bool _UpdateDataBlobValue(const uint32 guid, const uint32 field, const uint32 value);
+ bool _UpdateDataBlobValue(const uint32 guid, const uint32 field, const int32 value);
bool _SetDataBlobValue(const uint32 guid, const uint32 field, const uint32 value);
// Writes SQL commands to a LOG file (see Trinityd.conf "LogSQL")