TrinityCore
Loading...
Searching...
No Matches
SmoothPhasing.h
Go to the documentation of this file.
1
/*
2
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3
*
4
* This program is free software; you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License as published by the
6
* Free Software Foundation; either version 2 of the License, or (at your
7
* option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
* more details.
13
*
14
* You should have received a copy of the GNU General Public License along
15
* with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#ifndef TRINITYCORE_SMOOTHPHASING_H
19
#define TRINITYCORE_SMOOTHPHASING_H
20
21
#include "
ObjectGuid.h
"
22
#include "
Optional.h
"
23
#include <unordered_map>
24
#include <variant>
25
26
struct
SmoothPhasingInfo
27
{
28
// Fields visible on client
29
Optional<ObjectGuid>
ReplaceObject
;
30
bool
ReplaceActive
=
true
;
31
bool
StopAnimKits
=
true
;
32
33
// Serverside fields
34
bool
Disabled
=
false
;
35
};
36
37
class
TC_GAME_API
SmoothPhasing
38
{
39
public
:
40
SmoothPhasing
();
41
SmoothPhasing
(
SmoothPhasing
const
&);
42
SmoothPhasing
(
SmoothPhasing
&&) noexcept;
43
SmoothPhasing
& operator=(
SmoothPhasing
const&);
44
SmoothPhasing
& operator=(
SmoothPhasing
&&) noexcept;
45
~
SmoothPhasing
();
46
47
void
SetViewerDependentInfo(
ObjectGuid
seer,
SmoothPhasingInfo
const& info);
48
void
ClearViewerDependentInfo(
ObjectGuid
seer);
49
50
void
SetSingleInfo(
SmoothPhasingInfo
const& info);
51
52
bool
IsReplacing(
ObjectGuid
guid) const;
53
54
bool
IsBeingReplacedForSeer(
ObjectGuid
seer) const;
55
SmoothPhasingInfo
const* GetInfoForSeer(
ObjectGuid
seer) const;
56
void
DisableReplacementForSeer(
ObjectGuid
seer);
57
58
private:
59
using
SmoothPhasingInfoViewerDependent
=
std
::unordered_map<
ObjectGuid
/* Seer */
,
SmoothPhasingInfo
>;
60
using
SmoothPhasingInfoSingle
=
SmoothPhasingInfo
;
61
62
std
::variant<
SmoothPhasingInfoSingle
,
SmoothPhasingInfoViewerDependent
> _storage;
63
};
64
65
#endif
// TRINITYCORE_SMOOTHPHASING_H
TC_GAME_API
#define TC_GAME_API
Definition
Define.h:129
ObjectGuid.h
Optional.h
Optional
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition
Optional.h:25
ObjectGuid
Definition
ObjectGuid.h:308
SmoothPhasing
Definition
SmoothPhasing.h:38
SmoothPhasing::SmoothPhasing
SmoothPhasing(SmoothPhasing &&) noexcept
SmoothPhasing::SmoothPhasing
SmoothPhasing()
SmoothPhasing::SmoothPhasing
SmoothPhasing(SmoothPhasing const &)
SmoothPhasing::SmoothPhasingInfoViewerDependent
std::unordered_map< ObjectGuid, SmoothPhasingInfo > SmoothPhasingInfoViewerDependent
Definition
SmoothPhasing.h:59
std
STL namespace.
SmoothPhasingInfo
Definition
SmoothPhasing.h:27
SmoothPhasingInfo::ReplaceActive
bool ReplaceActive
Definition
SmoothPhasing.h:30
SmoothPhasingInfo::ReplaceObject
Optional< ObjectGuid > ReplaceObject
Definition
SmoothPhasing.h:29
SmoothPhasingInfo::Disabled
bool Disabled
Definition
SmoothPhasing.h:34
SmoothPhasingInfo::StopAnimKits
bool StopAnimKits
Definition
SmoothPhasing.h:31
server
game
Entities
Object
SmoothPhasing.h
Generated on Sun May 10 2026 02:08:56 for TrinityCore by
1.9.8