aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Scenarios/InstanceScenario.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-11-07 10:55:29 +0100
committerShauren <shauren.trinity@gmail.com>2016-11-07 10:55:29 +0100
commitf9b4f686c83bcc97fad84f1d8775963c4a108541 (patch)
treef91bdfe31eed193beec1bd6bd954fa679a969c25 /src/server/game/Scenarios/InstanceScenario.cpp
parentb01820704846fff493ed6839a8849d5e3f5742f7 (diff)
Core/Scenarios: Removed a bad usage of blocking db queries when saving scenario to db
Diffstat (limited to 'src/server/game/Scenarios/InstanceScenario.cpp')
-rw-r--r--src/server/game/Scenarios/InstanceScenario.cpp33
1 files changed, 11 insertions, 22 deletions
diff --git a/src/server/game/Scenarios/InstanceScenario.cpp b/src/server/game/Scenarios/InstanceScenario.cpp
index 60f3a364af5..f8c9959d3fd 100644
--- a/src/server/game/Scenarios/InstanceScenario.cpp
+++ b/src/server/game/Scenarios/InstanceScenario.cpp
@@ -20,7 +20,7 @@
#include "InstanceSaveMgr.h"
#include "ObjectMgr.h"
-InstanceScenario::InstanceScenario(Map* map, ScenarioData const* scenarioData) : Scenario(scenarioData), _map(map)
+InstanceScenario::InstanceScenario(Map const* map, ScenarioData const* scenarioData) : Scenario(scenarioData), _map(map)
{
ASSERT(_map);
LoadInstanceData(_map->GetInstanceId());
@@ -65,28 +65,17 @@ void InstanceScenario::SaveToDB()
if (iter->second.Counter)
{
- PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_SCENARIO_INSTANCE_CRITERIA);
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_SCENARIO_INSTANCE_CRITERIA);
stmt->setUInt32(0, id);
stmt->setUInt32(1, iter->first);
- PreparedQueryResult result = CharacterDatabase.Query(stmt);
- if (result)
- {
- stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_SCENARIO_INSTANCE_CRITERIA);
- stmt->setUInt64(0, iter->second.Counter);
- stmt->setUInt32(1, uint32(iter->second.Date));
- stmt->setUInt32(2, id);
- stmt->setUInt32(3, iter->first);
- trans->Append(stmt);
- }
- else
- {
- stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_SCENARIO_INSTANCE_CRITERIA);
- stmt->setUInt32(0, id);
- stmt->setUInt32(1, iter->first);
- stmt->setUInt64(2, iter->second.Counter);
- stmt->setUInt32(3, uint32(iter->second.Date));
- trans->Append(stmt);
- }
+ trans->Append(stmt);
+
+ stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_SCENARIO_INSTANCE_CRITERIA);
+ stmt->setUInt32(0, id);
+ stmt->setUInt32(1, iter->first);
+ stmt->setUInt64(2, iter->second.Counter);
+ stmt->setUInt32(3, uint32(iter->second.Date));
+ trans->Append(stmt);
}
iter->second.Changed = false;
@@ -120,7 +109,7 @@ void InstanceScenario::LoadInstanceData(uint32 instanceId)
// Removing non-existing criteria data for all instances
TC_LOG_ERROR("criteria.instancescenarios", "Removing scenario criteria %u data from the table `instance_scenario_progress`.", id);
- stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INVALID_SCENARIO_INSTANCE_CRITERIA);
+ stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_SCENARIO_INSTANCE_CRITERIA);
stmt->setUInt32(0, instanceId);
stmt->setUInt32(1, uint32(id));
trans->Append(stmt);