Skip to content

Commit

Permalink
Add saving of Con-speed-atory achievement to database
Browse files Browse the repository at this point in the history
  • Loading branch information
killerwife committed Nov 6, 2017
1 parent 526bfb8 commit 095500d
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 18 deletions.
Expand Up @@ -457,11 +457,6 @@ struct boss_freyaAI : public ScriptedAI
{
if (!m_uiThreeAlliesTimer)
m_uiThreeAlliesTimer = 12000;
}
else if (eventType == AI_EVENT_CUSTOM_C)
{
if (m_pInstance)
m_pInstance->DoStartTimedAchievement(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, ACHIEV_START_FREYA_ID);
}
}

Expand Down
Expand Up @@ -73,7 +73,6 @@ static UlduarKeeperSpawns m_aKeeperHelperLocs[] =

instance_ulduar::instance_ulduar(Map* pMap) : ScriptedInstance(pMap), DialogueHelper(aUlduarDialogue),
m_bHelpersLoaded(false),
m_bFreyaVigilance(false),
m_uiAlgalonTimer(MINUTE* IN_MILLISECONDS),
m_uiYoggResetTimer(0),
m_uiShatterAchievTimer(0),
Expand Down Expand Up @@ -984,6 +983,11 @@ void instance_ulduar::SetData(uint32 uiType, uint32 uiData)
case TYPE_LEVIATHAN_GAUNTLET:
m_uiGauntletStatus = uiData;
return;
case TYPE_FREYA_CONSPEEDATORY:
m_achievEncounter[ACHIEV_FREYA_CONSPEEDATORY] = uiData;
if (uiData == DONE)
DoStartTimedAchievement(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, ACHIEV_START_FREYA_ID);
break;
}

if (uiData == DONE || uiData == FAIL || uiData == SPECIAL || uiType == TYPE_ALGALON_TIMER)
Expand All @@ -999,7 +1003,7 @@ void instance_ulduar::SetData(uint32 uiType, uint32 uiData)
<< m_auiEncounter[12] << " " << m_auiEncounter[13] << " " << m_auiEncounter[14] << " "
<< m_auiEncounter[15] << " " << m_auiUlduarKeepers[0] << " " << m_auiUlduarKeepers[1] << " "
<< m_auiUlduarKeepers[2] << " " << m_auiUlduarKeepers[3] << " " << m_auiUlduarTowers[0] << " "
<< m_auiUlduarTowers[1] << " " << m_auiUlduarTowers[2] << " " << m_auiUlduarTowers[3];
<< m_auiUlduarTowers[1] << " " << m_auiUlduarTowers[2] << " " << m_auiUlduarTowers[3] << m_achievEncounter[ACHIEV_FREYA_CONSPEEDATORY];

m_strInstData = saveStream.str();

Expand Down Expand Up @@ -1134,6 +1138,10 @@ uint32 instance_ulduar::GetData(uint32 uiType) const

case TYPE_LEVIATHAN_GAUNTLET:
return m_uiGauntletStatus;

// Achievement encounters
case TYPE_FREYA_CONSPEEDATORY:
return m_achievEncounter[ACHIEV_FREYA_CONSPEEDATORY];
}

return 0;
Expand Down Expand Up @@ -1212,17 +1220,10 @@ void instance_ulduar::OnCreatureEnterCombat(Creature* pCreature)
case NPC_GUARDIAN_OF_LIFE:
{
// Only for the first try
if (m_bFreyaVigilance)
if (GetData(TYPE_FREYA_CONSPEEDATORY) != DONE)
return;

if (Creature* pFreya = GetSingleCreatureFromStorage(NPC_FREYA))
{
if (pFreya->isAlive())
pCreature->AI()->SendAIEvent(AI_EVENT_CUSTOM_C, pCreature, pFreya);
}
break;

m_bFreyaVigilance = true;
SetData(TYPE_FREYA_CONSPEEDATORY, DONE);
}
break;
}
Expand Down Expand Up @@ -1321,7 +1322,7 @@ void instance_ulduar::Load(const char* strIn)
>> m_auiEncounter[8] >> m_auiEncounter[9] >> m_auiEncounter[10] >> m_auiEncounter[11]
>> m_auiEncounter[12] >> m_auiEncounter[13] >> m_auiEncounter[14] >> m_auiEncounter[15]
>> m_auiUlduarKeepers[0] >> m_auiUlduarKeepers[1] >> m_auiUlduarKeepers[2] >> m_auiUlduarKeepers[3]
>> m_auiUlduarTowers[0] >> m_auiUlduarTowers[1] >> m_auiUlduarTowers[2] >> m_auiUlduarTowers[3];
>> m_auiUlduarTowers[0] >> m_auiUlduarTowers[1] >> m_auiUlduarTowers[2] >> m_auiUlduarTowers[3] >> m_achievEncounter[ACHIEV_FREYA_CONSPEEDATORY];

for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
{
Expand Down
Expand Up @@ -57,6 +57,12 @@ enum
// Other types - not saved
TYPE_LEVIATHAN_GAUNTLET = 32,

// Other types - saved
TYPE_FREYA_CONSPEEDATORY = 33, // SetData ID

ACHIEV_FREYA_CONSPEEDATORY = 0, // Saving array ID
MAX_ACHIEV_ENCOUNTER = 1,

// The siege of ulduar
NPC_LEVIATHAN = 33113,
// NPC_IGNIS = 33118,
Expand Down Expand Up @@ -618,9 +624,9 @@ class instance_ulduar : public ScriptedInstance, private DialogueHelper
uint32 m_auiUlduarKeepers[KEEPER_ENCOUNTER];
uint32 m_auiUlduarTowers[KEEPER_ENCOUNTER];
bool m_abAchievCriteria[MAX_SPECIAL_ACHIEV_CRITS];
uint32 m_achievEncounter[MAX_ACHIEV_ENCOUNTER]; // for achievements which need saving

bool m_bHelpersLoaded;
bool m_bFreyaVigilance;

uint32 m_uiAlgalonTimer;
uint32 m_uiYoggResetTimer;
Expand Down

1 comment on commit 095500d

@xfurry
Copy link
Member

@xfurry xfurry commented on 095500d Nov 6, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Please sign in to comment.