aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2017-01-29 14:00:19 -0300
committerShauren <shauren.trinity@gmail.com>2019-07-21 21:06:54 +0200
commit26fe9496191225c8300ac57c07e9380193ec2c54 (patch)
tree398fd719267e5136f8b1cc6ef5a094a1b1c3cb13 /src
parent192f08824863d8ac5db9051fa848908a6eafdde4 (diff)
Core/Server: fix duplicated inserts into tutorials table for newly created characters
(cherrypicked from 60dd803bbe01283b15e2b2c5b02d8f857b96745a)
Diffstat (limited to 'src')
-rw-r--r--src/server/database/Database/Implementation/CharacterDatabase.cpp1
-rw-r--r--src/server/database/Database/Implementation/CharacterDatabase.h1
-rw-r--r--src/server/game/Server/WorldSession.cpp4
3 files changed, 4 insertions, 2 deletions
diff --git a/src/server/database/Database/Implementation/CharacterDatabase.cpp b/src/server/database/Database/Implementation/CharacterDatabase.cpp
index 2b32f9f0a60..b05af92a05e 100644
--- a/src/server/database/Database/Implementation/CharacterDatabase.cpp
+++ b/src/server/database/Database/Implementation/CharacterDatabase.cpp
@@ -318,7 +318,6 @@ void CharacterDatabaseConnection::DoPrepareStatements()
// Tutorials
PrepareStatement(CHAR_SEL_TUTORIALS, "SELECT tut0, tut1, tut2, tut3, tut4, tut5, tut6, tut7 FROM account_tutorial WHERE accountId = ?", CONNECTION_ASYNC);
- PrepareStatement(CHAR_SEL_HAS_TUTORIALS, "SELECT 1 FROM account_tutorial WHERE accountId = ?", CONNECTION_SYNCH);
PrepareStatement(CHAR_INS_TUTORIALS, "INSERT INTO account_tutorial(tut0, tut1, tut2, tut3, tut4, tut5, tut6, tut7, accountId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
PrepareStatement(CHAR_UPD_TUTORIALS, "UPDATE account_tutorial SET tut0 = ?, tut1 = ?, tut2 = ?, tut3 = ?, tut4 = ?, tut5 = ?, tut6 = ?, tut7 = ? WHERE accountId = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_DEL_TUTORIALS, "DELETE FROM account_tutorial WHERE accountId = ?", CONNECTION_ASYNC);
diff --git a/src/server/database/Database/Implementation/CharacterDatabase.h b/src/server/database/Database/Implementation/CharacterDatabase.h
index 306f545540a..fa2f0071a23 100644
--- a/src/server/database/Database/Implementation/CharacterDatabase.h
+++ b/src/server/database/Database/Implementation/CharacterDatabase.h
@@ -252,7 +252,6 @@ enum CharacterDatabaseStatements : uint32
CHAR_DEL_PLAYER_ACCOUNT_DATA,
CHAR_SEL_TUTORIALS,
- CHAR_SEL_HAS_TUTORIALS,
CHAR_INS_TUTORIALS,
CHAR_UPD_TUTORIALS,
CHAR_DEL_TUTORIALS,
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index f59c652b9a0..486cc889320 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -830,6 +830,10 @@ void WorldSession::SaveTutorialsData(SQLTransaction& trans)
stmt->setUInt32(MAX_ACCOUNT_TUTORIAL_VALUES, GetAccountId());
trans->Append(stmt);
+ // now has, set flag so next save uses update query
+ if (!hasTutorialsInDB)
+ _tutorialsChanged |= TUTORIALS_FLAG_LOADED_FROM_DB;
+
_tutorialsChanged &= ~TUTORIALS_FLAG_CHANGED;
}