aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMachiavelli <none@none>2010-12-18 23:25:03 +0100
committerMachiavelli <none@none>2010-12-18 23:25:03 +0100
commita09340836080f02d4b724d215587aef805f90767 (patch)
treed23017c959edb409f6ecf93669db506607e119c9 /src
parent7196b880d6f28c4a98a026ab6f04dfcedb64e68d (diff)
Core/Player: Convert _SaveAuras to prepared statement format
--HG-- branch : trunk
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp27
-rwxr-xr-xsrc/server/shared/Database/Implementation/CharacterDatabase.cpp5
-rwxr-xr-xsrc/server/shared/Database/Implementation/CharacterDatabase.h3
3 files changed, 29 insertions, 6 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 10b0e148925..b1e4435c55a 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -18086,7 +18086,9 @@ void Player::_SaveActions(SQLTransaction& trans)
void Player::_SaveAuras(SQLTransaction& trans)
{
- trans->PAppend("DELETE FROM character_aura WHERE guid = '%u'",GetGUIDLow());
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_AURA);
+ stmt->setUInt32(0, GetGUIDLow());
+ trans->Append(stmt);
for (AuraMap::const_iterator itr = m_ownedAuras.begin(); itr != m_ownedAuras.end() ; ++itr)
{
@@ -18116,11 +18118,24 @@ void Player::_SaveAuras(SQLTransaction& trans)
}
}
- trans->PAppend("INSERT INTO character_aura (guid,caster_guid,spell,effect_mask,recalculate_mask,stackcount,amount0,amount1,amount2,base_amount0,base_amount1,base_amount2,maxduration,remaintime,remaincharges) "
- "VALUES ('%u', '" UI64FMTD "', '%u', '%u', '%u', '%u', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%u')",
- GetGUIDLow(), itr->second->GetCasterGUID(), itr->second->GetId(), effMask, recalculateMask,
- itr->second->GetStackAmount(), damage[0], damage[1], damage[2], baseDamage[0], baseDamage[1], baseDamage[2],
- itr->second->GetMaxDuration(), itr->second->GetDuration(),itr->second->GetCharges());
+ uint8 index = 0;
+ stmt = CharacterDatabase.GetPreparedStatement(CHAR_ADD_AURA);
+ stmt->setUInt32(index++, GetGUIDLow());
+ stmt->setUInt64(index++, itr->second->GetCasterGUID());
+ stmt->setUInt32(index++, itr->second->GetId());
+ stmt->setUInt8(index++, effMask);
+ stmt->setUInt8(index++, recalculateMask);
+ stmt->setUInt8(index++, itr->second->GetStackAmount());
+ stmt->setInt32(index++, damage[0]);
+ stmt->setInt32(index++, damage[1]);
+ stmt->setInt32(index++, damage[2]);
+ stmt->setInt32(index++, baseDamage[0]);
+ stmt->setInt32(index++, baseDamage[1]);
+ stmt->setInt32(index++, baseDamage[2]);
+ stmt->setInt32(index++, itr->second->GetMaxDuration());
+ stmt->setInt32(index++, itr->second->GetDuration());
+ stmt->setUInt8(index, itr->second->GetCharges());
+ trans->Append(stmt);
}
}
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
index c11fdb57cd0..5e5ab97e075 100755
--- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp
+++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
@@ -251,5 +251,10 @@ bool CharacterDatabaseConnection::Open()
PrepareStatement(CHAR_ADD_EQUIP_SET, "INSERT INTO character_equipmentsets (guid,setguid,setindex,name,iconname,item0,item1,item2,item3,item4,item5,item6,item7,item8,item9,item10,item11,item12,item13,item14,item15,item16,item17,item18) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", true);
PrepareStatement(CHAR_DEL_EQUIP_SET, "DELETE FROM character_equipmentsets WHERE setguid=?", true);
+ // Auras
+ PrepareStatement(CHAR_DEL_AURA, "DELETE FROM character_aura WHERE guid = ?", true);
+ PrepareStatement(CHAR_ADD_AURA, "INSERT INTO character_aura (guid,caster_guid,spell,effect_mask,recalculate_mask,stackcount,amount0,amount1,amount2,base_amount0,base_amount1,base_amount2,maxduration,remaintime,remaincharges) "
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", true);
+
return true;
}
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h
index 77b300640e5..e9b83fcfad8 100755
--- a/src/server/shared/Database/Implementation/CharacterDatabase.h
+++ b/src/server/shared/Database/Implementation/CharacterDatabase.h
@@ -210,6 +210,9 @@ enum CharacterDatabaseStatements
CHAR_ADD_EQUIP_SET,
CHAR_DEL_EQUIP_SET,
+ CHAR_DEL_AURA,
+ CHAR_ADD_AURA,
+
MAX_CHARACTERDATABASE_STATEMENTS,
};