diff options
author | maximius <none@none> | 2009-09-30 04:18:07 -0700 |
---|---|---|
committer | maximius <none@none> | 2009-09-30 04:18:07 -0700 |
commit | 3c43ef715754ba2762b7e4c9006957074c84366d (patch) | |
tree | 6ef1e024e01946f532c970e6d46d377d084a8588 /src | |
parent | 57370773711ee8270765e73bebe34ff1ca92e43f (diff) |
*Better support for negatives.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/BattleGroundMgr.cpp | 2 | ||||
-rw-r--r-- | src/shared/Database/Database.cpp | 4 | ||||
-rw-r--r-- | src/shared/Database/Database.h | 2 |
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") |