diff options
| author | Shauren <shauren.trinity@gmail.com> | 2011-02-03 22:20:40 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2011-02-03 22:20:40 +0100 |
| commit | c2b0bcbd6c8155812857523681cd787059cd9bf9 (patch) | |
| tree | b325612ecdddbb1235c676a862435c83374f95cf /src/server/game/Instances/InstanceSaveMgr.cpp | |
| parent | 7ea8bad07f64ed5886130fcc8016c0c72a32758e (diff) | |
Core/Instances: Implemented DungeonEncounter.dbc for creating completed encounters mask to use in packets
Core/Dungeon Finder: Implemented new way of giving random dungeon rewards, linked to DungeonEncounter.dbc
Diffstat (limited to 'src/server/game/Instances/InstanceSaveMgr.cpp')
| -rwxr-xr-x | src/server/game/Instances/InstanceSaveMgr.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/server/game/Instances/InstanceSaveMgr.cpp b/src/server/game/Instances/InstanceSaveMgr.cpp index 4c2f8117ba7..ad385a7334d 100755 --- a/src/server/game/Instances/InstanceSaveMgr.cpp +++ b/src/server/game/Instances/InstanceSaveMgr.cpp @@ -165,20 +165,27 @@ void InstanceSave::SaveToDB() { // save instance data too std::string data; + uint32 completedEncounters = 0; - Map *map = sMapMgr->FindMap(GetMapId(),m_instanceid); + Map *map = sMapMgr->FindMap(GetMapId(), m_instanceid); if (map) { ASSERT(map->IsDungeon()); - if (InstanceScript *iData = ((InstanceMap*)map)->GetInstanceScript()) + if (InstanceScript *instanceScript = ((InstanceMap*)map)->GetInstanceScript()) { - data = iData->GetSaveData(); - if (!data.empty()) - CharacterDatabase.escape_string(data); + data = instanceScript->GetSaveData(); + completedEncounters = instanceScript->GetCompletedEncounterMask(); } } - CharacterDatabase.PExecute("INSERT INTO instance VALUES ('%u', '%u', '%u', '%u', '%s')", m_instanceid, GetMapId(), (uint32)GetResetTimeForDB(), GetDifficulty(), data.c_str()); + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_ADD_INSTANCE_SAVE); + stmt->setUInt32(0, m_instanceid); + stmt->setUInt16(1, GetMapId()); + stmt->setUInt32(2, uint32(GetResetTimeForDB())); + stmt->setUInt8(3, uint8(GetDifficulty())); + stmt->setUInt32(4, completedEncounters); + stmt->setString(5, data); + CharacterDatabase.Execute(stmt); } time_t InstanceSave::GetResetTimeForDB() |
