aboutsummaryrefslogtreecommitdiff
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
parent57370773711ee8270765e73bebe34ff1ca92e43f (diff)
*Better support for negatives.
--HG-- branch : trunk
-rw-r--r--src/game/BattleGroundMgr.cpp2
-rw-r--r--src/shared/Database/Database.cpp4
-rw-r--r--src/shared/Database/Database.h2
3 files changed, 4 insertions, 4 deletions
diff --git a/src/game/BattleGroundMgr.cpp b/src/game/BattleGroundMgr.cpp
index ec67d2f5d54..b7b436790fa 100644
--- a/src/game/BattleGroundMgr.cpp
+++ b/src/game/BattleGroundMgr.cpp
@@ -1833,7 +1833,7 @@ void BattleGroundMgr::DistributeArenaPoints()
{
CharacterDatabase.PExecute("UPDATE characters SET arena_pending_points = 0 WHERE guid = '%u'", plr_itr->first);
CharacterDatabase._UpdateDataBlobValue(plr_itr->first, PLAYER_FIELD_ARENA_CURRENCY,
- std::max(std::min(int32(plr_itr->second),int32(sWorld.getConfig(CONFIG_MAX_ARENA_POINTS))),0));
+ std::min(int32(plr_itr->second),int32(sWorld.getConfig(CONFIG_MAX_ARENA_POINTS))));
}
}
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")