mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Scenarios: Move map from InstanceScenario to base class
This commit is contained in:
@@ -26,7 +26,7 @@
|
||||
#include "ScenarioMgr.h"
|
||||
#include "StringFormat.h"
|
||||
|
||||
InstanceScenario::InstanceScenario(InstanceMap const* map, ScenarioData const* scenarioData) : Scenario(scenarioData), _map(map)
|
||||
InstanceScenario::InstanceScenario(InstanceMap* map, ScenarioData const* scenarioData) : Scenario(map, scenarioData)
|
||||
{
|
||||
ASSERT(_map);
|
||||
LoadInstanceData();
|
||||
@@ -39,7 +39,7 @@ InstanceScenario::InstanceScenario(InstanceMap const* map, ScenarioData const* s
|
||||
|
||||
void InstanceScenario::LoadInstanceData()
|
||||
{
|
||||
InstanceScript const* instanceScript = _map->GetInstanceScript();
|
||||
InstanceScript const* instanceScript = _map->ToInstanceMap()->GetInstanceScript();
|
||||
if (!instanceScript)
|
||||
return;
|
||||
|
||||
|
||||
@@ -25,15 +25,13 @@ class InstanceMap;
|
||||
class TC_GAME_API InstanceScenario : public Scenario
|
||||
{
|
||||
public:
|
||||
InstanceScenario(InstanceMap const* map, ScenarioData const* scenarioData);
|
||||
InstanceScenario(InstanceMap* map, ScenarioData const* scenarioData);
|
||||
|
||||
void LoadInstanceData();
|
||||
|
||||
protected:
|
||||
std::string GetOwnerInfo() const override;
|
||||
void SendPacket(WorldPacket const* data) const override;
|
||||
|
||||
InstanceMap const* _map;
|
||||
};
|
||||
|
||||
#endif // InstanceScenario_h__
|
||||
|
||||
@@ -23,7 +23,8 @@
|
||||
#include "ScenarioMgr.h"
|
||||
#include "ScenarioPackets.h"
|
||||
|
||||
Scenario::Scenario(ScenarioData const* scenarioData) : _data(scenarioData), _currentstep(nullptr)
|
||||
Scenario::Scenario(Map* map, ScenarioData const* scenarioData) : _map(map), _data(scenarioData),
|
||||
_currentstep(nullptr)
|
||||
{
|
||||
ASSERT(_data);
|
||||
|
||||
@@ -39,7 +40,7 @@ Scenario::Scenario(ScenarioData const* scenarioData) : _data(scenarioData), _cur
|
||||
Scenario::~Scenario()
|
||||
{
|
||||
for (ObjectGuid guid : _players)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::GetPlayer(_map, guid))
|
||||
SendBootPlayer(player);
|
||||
|
||||
_players.clear();
|
||||
@@ -55,7 +56,7 @@ void Scenario::CompleteStep(ScenarioStepEntry const* step)
|
||||
{
|
||||
if (Quest const* quest = sObjectMgr->GetQuestTemplate(step->RewardQuestID))
|
||||
for (ObjectGuid guid : _players)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::GetPlayer(_map, guid))
|
||||
player->RewardQuest(quest, LootItemType::Item, 0, nullptr, false);
|
||||
|
||||
if (step->IsBonusObjective())
|
||||
@@ -215,7 +216,7 @@ bool Scenario::IsCompletedStep(ScenarioStepEntry const* step)
|
||||
void Scenario::SendPacket(WorldPacket const* data) const
|
||||
{
|
||||
for (ObjectGuid guid : _players)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(guid))
|
||||
if (Player* player = ObjectAccessor::GetPlayer(_map, guid))
|
||||
player->SendDirectMessage(data);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "CriteriaHandler.h"
|
||||
#include <unordered_set>
|
||||
|
||||
class Map;
|
||||
struct ScenarioData;
|
||||
struct ScenarioEntry;
|
||||
struct ScenarioStepEntry;
|
||||
@@ -50,7 +51,7 @@ enum ScenarioStepState
|
||||
class TC_GAME_API Scenario : public CriteriaHandler
|
||||
{
|
||||
public:
|
||||
Scenario(ScenarioData const* scenarioData);
|
||||
Scenario(Map* map, ScenarioData const* scenarioData);
|
||||
~Scenario();
|
||||
|
||||
void Reset() override;
|
||||
@@ -76,6 +77,7 @@ class TC_GAME_API Scenario : public CriteriaHandler
|
||||
void SendBootPlayer(Player* player);
|
||||
|
||||
protected:
|
||||
Map const* _map;
|
||||
GuidUnorderedSet _players;
|
||||
|
||||
void SendCriteriaUpdate(Criteria const* criteria, CriteriaProgress const* progress, Seconds timeElapsed, bool timedCompleted) const override;
|
||||
|
||||
Reference in New Issue
Block a user