aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
index 5f6ffbc1be0..3e145abe5b2 100644
--- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
@@ -24,6 +24,7 @@
#include "Map.h"
#include "naxxramas.h"
#include "TemporarySummon.h"
+#include <sstream>
BossBoundaryData const boundaries =
{
@@ -124,7 +125,7 @@ class instance_naxxramas : public InstanceMapScript
hadSapphironBirth = false;
CurrentWingTaunt = SAY_KELTHUZAD_FIRST_WING_TAUNT;
- playerDied = 0;
+ playerDied = false;
}
void OnCreatureCreate(Creature* creature) override
@@ -249,9 +250,9 @@ class instance_naxxramas : public InstanceMapScript
void OnUnitDeath(Unit* unit) override
{
- if (unit->GetTypeId() == TYPEID_PLAYER && IsEncounterInProgress())
+ if (!playerDied && unit->IsPlayer() && IsEncounterInProgress())
{
- playerDied = 1;
+ playerDied = true;
SaveToDB();
}
@@ -551,6 +552,18 @@ class instance_naxxramas : public InstanceMapScript
return false;
}
+ void WriteSaveDataMore(std::ostringstream& data) override
+ {
+ data << uint32(playerDied ? 1 : 0);
+ }
+
+ void ReadSaveDataMore(std::istringstream& data) override
+ {
+ uint32 tmpState;
+ data >> tmpState;
+ playerDied = tmpState != 0;
+ }
+
protected:
/* The Arachnid Quarter */
// Anub'rekhan
@@ -596,7 +609,7 @@ class instance_naxxramas : public InstanceMapScript
uint8 CurrentWingTaunt;
/* The Immortal / The Undying */
- uint32 playerDied;
+ bool playerDied;
EventMap events;
};