Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
BattlePetSpawnMgr.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef BATTLE_PET_SPAWN_MGR_H
7#define BATTLE_PET_SPAWN_MGR_H
8
9#include "Common.h"
10
11#include <map>
12#include <set>
13#include <vector>
14
15class Creature;
16
18{
24
25 std::map<uint64, uint64> Replacements;
26 std::set<uint64> ReadyForReplacement;
27};
28
30{
31public:
32 void AddTemplate(BattlePetWildPoolTemplate const& spawnTemplate);
33 void Populate();
34 void OnCreatureAdded(Creature* creature);
35 void OnCreatureRemoved(Creature* creature);
36 bool RemoveReplacement(Creature* replacement);
37 bool IsReplacement(uint64 guid) const;
38
39private:
40 void SpawnReplacement(uint64 originalGuid, BattlePetWildPoolTemplate& spawnTemplate);
41 bool RemoveReplacement(uint64 originalGuid, BattlePetWildPoolTemplate& spawnTemplate);
42
43 std::vector<BattlePetWildPoolTemplate> _templates;
44};
45
47{
48public:
50
51 void LoadFromDB();
52 void Update(uint32 diff);
53 void OnCreatureAdded(Creature* creature);
54 void OnCreatureRemoved(Creature* creature);
55 bool ResolveWildBattle(Creature* creature);
56 bool IsWildBattlePetReplacement(Creature const* creature) const;
57
58private:
59 typedef std::map<uint32, BattlePetWildZonePool> BattlePetZonePoolMap;
60 typedef std::map<uint32, BattlePetZonePoolMap> BattlePetMapPoolMap;
61
63 BattlePetWildZonePool const* GetZonePool(Creature const* creature) const;
64
67};
68
69#define sBattlePetSpawnMgr BattlePetSpawnMgr::instance()
70
71#endif // BATTLE_PET_SPAWN_MGR_H
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
std::uint64_t uint64
Definition Define.h:76
std::uint16_t uint16
Definition Define.h:78
BattlePetMapPoolMap _mapPools
bool ResolveWildBattle(Creature *creature)
BattlePetWildZonePool * GetZonePool(Creature const *creature)
std::map< uint32, BattlePetZonePoolMap > BattlePetMapPoolMap
void OnCreatureAdded(Creature *creature)
std::map< uint32, BattlePetWildZonePool > BattlePetZonePoolMap
void Update(uint32 diff)
bool IsWildBattlePetReplacement(Creature const *creature) const
void OnCreatureRemoved(Creature *creature)
static BattlePetSpawnMgr * instance()
void OnCreatureAdded(Creature *creature)
void SpawnReplacement(uint64 originalGuid, BattlePetWildPoolTemplate &spawnTemplate)
bool RemoveReplacement(Creature *replacement)
std::vector< BattlePetWildPoolTemplate > _templates
void AddTemplate(BattlePetWildPoolTemplate const &spawnTemplate)
void OnCreatureRemoved(Creature *creature)
bool IsReplacement(uint64 guid) const
std::set< uint64 > ReadyForReplacement
std::map< uint64, uint64 > Replacements