Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
MoveSplineFlag.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 SKYFIRESERVER_MOVESPLINEFLAG_H
7
#define SKYFIRESERVER_MOVESPLINEFLAG_H
8
#include "
MovementTypedefs.h
"
9
10
#include <string>
11
12
namespace
Movement
13
{
14
#if defined( __GNUC__ )
15
#pragma pack(1)
16
#else
17
#pragma pack(push, 1)
18
#endif
19
20
class
MoveSplineFlag
21
{
22
public
:
23
enum
eFlags
24
{
25
None
= 0x00000000,
26
// x00-x07 used as animation Ids storage in pair with Animation flag
27
Unknown0
= 0x00000008,
// NOT VERIFIED
28
FallingSlow
= 0x00000010,
29
Done
= 0x00000020,
30
Falling
= 0x00000040,
// Affects elevation computation, can't be combined with Parabolic flag
31
No_Spline
= 0x00000080,
32
Unknown2
= 0x00000100,
// NOT VERIFIED
33
Flying
= 0x00000200,
// Smooth movement(Catmullrom interpolation mode), flying animation
34
OrientationFixed
= 0x00000400,
// Model orientation fixed
35
Catmullrom
= 0x00000800,
// Used Catmullrom interpolation mode
36
Cyclic
= 0x00001000,
// Movement by cycled spline
37
Enter_Cycle
= 0x00002000,
// Everytimes appears with cyclic flag in monster move packet, erases first spline vertex after first cycle done
38
Frozen
= 0x00004000,
// Will never arrive
39
TransportEnter
= 0x00008000,
40
TransportExit
= 0x00010000,
41
Unknown3
= 0x00020000,
// NOT VERIFIED
42
Unknown4
= 0x00040000,
// NOT VERIFIED
43
OrientationInversed
= 0x00080000,
44
SmoothGroundPath
= 0x00100000,
45
Walkmode
= 0x00200000,
46
UncompressedPath
= 0x00400000,
47
Unknown6
= 0x00800000,
// NOT VERIFIED
48
Animation
= 0x01000000,
// Plays animation after some time passed
49
Parabolic
= 0x02000000,
// Affects elevation computation, can't be combined with Falling flag
50
Final_Point
= 0x04000000,
51
Final_Target
= 0x08000000,
52
Final_Angle
= 0x10000000,
53
Unknown7
= 0x20000000,
// NOT VERIFIED
54
Unknown8
= 0x40000000,
// NOT VERIFIED
55
Unknown9
= 0x80000000,
// NOT VERIFIED
56
57
// Masks
58
Mask_Final_Facing
=
Final_Point
|
Final_Target
|
Final_Angle
,
59
// animation ids stored here, see AnimType enum, used with Animation flag
60
Mask_Animations
= 0x7,
61
// flags that shouldn't be appended into SMSG_ON_MONSTER_MOVE\SMSG_ON_MONSTER_MOVE_TRANSPORT packet, should be more probably
62
Mask_No_Monster_Move
=
Mask_Final_Facing
|
Mask_Animations
|
Done
,
63
// Unused, not suported flags
64
Mask_Unused
=
No_Spline
|
Enter_Cycle
|
Frozen
|
Unknown0
|
Unknown2
|
Unknown3
|
Unknown4
|
Unknown6
|
Unknown7
|
Unknown8
|
Unknown9
65
};
66
67
inline
uint32
&
raw
() {
return
(
uint32
&)*
this
; }
68
inline
const
uint32
&
raw
()
const
{
return
(
const
uint32
&)*
this
; }
69
70
MoveSplineFlag
() {
raw
() = 0; }
71
MoveSplineFlag
(
uint32
f) {
raw
() = f; }
72
MoveSplineFlag
(
const
MoveSplineFlag
& f) {
raw
() = f.
raw
(); }
73
74
// Constant interface
75
76
bool
isSmooth
()
const
{
return
raw
() &
Catmullrom
; }
77
bool
isLinear
()
const
{
return
!
isSmooth
(); }
78
bool
isFacing
()
const
{
return
raw
() &
Mask_Final_Facing
; }
79
80
uint8
getAnimationId
()
const
{
return
animId
; }
81
bool
hasAllFlags
(
uint32
f)
const
{
return
(
raw
() & f) == f; }
82
bool
hasFlag
(
uint32
f)
const
{
return
(
raw
() & f) != 0; }
83
uint32
operator &
(
uint32
f)
const
{
return
(
raw
() & f); }
84
uint32
operator |
(
uint32
f)
const
{
return
(
raw
() | f); }
85
std::string
ToString
()
const
;
86
87
// Not constant interface
88
89
void
operator &=
(
uint32
f) {
raw
() &= f; }
90
void
operator |=
(
uint32
f) {
raw
() |= f; }
91
92
void
EnableAnimation
(
uint8
anim) {
raw
() = (
raw
() & ~(
Mask_Animations
|
Falling
|
Parabolic
|
FallingSlow
)) |
Animation
| (anim &
Mask_Animations
); }
93
void
EnableParabolic
() {
raw
() = (
raw
() & ~(
Mask_Animations
|
Falling
|
Animation
|
FallingSlow
)) |
Parabolic
; }
94
void
EnableFlying
() {
raw
() = (
raw
() & ~(
Falling
)) |
Flying
; }
95
void
EnableFalling
() {
raw
() = (
raw
() & ~(
Mask_Animations
|
Parabolic
|
Animation
|
Flying
)) |
Falling
; }
96
void
EnableCatmullRom
() {
raw
() = (
raw
() &
~SmoothGroundPath
) |
Catmullrom
; }
97
void
EnableFacingPoint
() {
raw
() = (
raw
() &
~Mask_Final_Facing
) |
Final_Point
; }
98
void
EnableFacingAngle
() {
raw
() = (
raw
() &
~Mask_Final_Facing
) |
Final_Angle
; }
99
void
EnableFacingTarget
() {
raw
() = (
raw
() &
~Mask_Final_Facing
) |
Final_Target
; }
100
void
EnableTransportEnter
() {
raw
() = (
raw
() &
~TransportExit
) |
TransportEnter
; }
101
void
EnableTransportExit
() {
raw
() = (
raw
() &
~TransportEnter
) |
TransportExit
; }
102
103
uint8
animId
: 3;
104
bool
unknown0
: 1;
105
bool
fallingSlow
: 1;
106
bool
done
: 1;
107
bool
falling
: 1;
108
bool
no_spline
: 1;
109
bool
unknown2
: 1;
110
bool
flying
: 1;
111
bool
orientationFixed
: 1;
112
bool
catmullrom
: 1;
113
bool
cyclic
: 1;
114
bool
enter_cycle
: 1;
115
bool
frozen
: 1;
116
bool
transportEnter
: 1;
117
bool
transportExit
: 1;
118
bool
unknown3
: 1;
119
bool
unknown4
: 1;
120
bool
orientationInversed
: 1;
121
bool
smoothGroundPath
: 1;
122
bool
walkmode
: 1;
123
bool
uncompressedPath
: 1;
124
bool
unknown6
: 1;
125
bool
animation
: 1;
126
bool
parabolic
: 1;
127
bool
final_point
: 1;
128
bool
final_target
: 1;
129
bool
final_angle
: 1;
130
bool
unknown7
: 1;
131
bool
unknown8
: 1;
132
bool
unknown9
: 1;
133
};
134
#if defined( __GNUC__ )
135
#pragma pack()
136
#else
137
#pragma pack(pop)
138
#endif
139
}
140
141
#endif
// SKYFIRESERVER_MOVESPLINEFLAG_H
uint8
std::uint8_t uint8
Definition
Define.h:79
uint32
std::uint32_t uint32
Definition
Define.h:77
MovementTypedefs.h
Movement::MoveSplineFlag::parabolic
bool parabolic
Definition
MoveSplineFlag.h:126
Movement::MoveSplineFlag::no_spline
bool no_spline
Definition
MoveSplineFlag.h:108
Movement::MoveSplineFlag::fallingSlow
bool fallingSlow
Definition
MoveSplineFlag.h:105
Movement::MoveSplineFlag::ToString
std::string ToString() const
Definition
MovementUtil.cpp:180
Movement::MoveSplineFlag::catmullrom
bool catmullrom
Definition
MoveSplineFlag.h:112
Movement::MoveSplineFlag::cyclic
bool cyclic
Definition
MoveSplineFlag.h:113
Movement::MoveSplineFlag::unknown7
bool unknown7
Definition
MoveSplineFlag.h:130
Movement::MoveSplineFlag::unknown6
bool unknown6
Definition
MoveSplineFlag.h:124
Movement::MoveSplineFlag::hasAllFlags
bool hasAllFlags(uint32 f) const
Definition
MoveSplineFlag.h:81
Movement::MoveSplineFlag::unknown9
bool unknown9
Definition
MoveSplineFlag.h:132
Movement::MoveSplineFlag::operator&
uint32 operator&(uint32 f) const
Definition
MoveSplineFlag.h:83
Movement::MoveSplineFlag::frozen
bool frozen
Definition
MoveSplineFlag.h:115
Movement::MoveSplineFlag::final_target
bool final_target
Definition
MoveSplineFlag.h:128
Movement::MoveSplineFlag::operator&=
void operator&=(uint32 f)
Definition
MoveSplineFlag.h:89
Movement::MoveSplineFlag::unknown4
bool unknown4
Definition
MoveSplineFlag.h:119
Movement::MoveSplineFlag::getAnimationId
uint8 getAnimationId() const
Definition
MoveSplineFlag.h:80
Movement::MoveSplineFlag::isSmooth
bool isSmooth() const
Definition
MoveSplineFlag.h:76
Movement::MoveSplineFlag::MoveSplineFlag
MoveSplineFlag()
Definition
MoveSplineFlag.h:70
Movement::MoveSplineFlag::final_point
bool final_point
Definition
MoveSplineFlag.h:127
Movement::MoveSplineFlag::animation
bool animation
Definition
MoveSplineFlag.h:125
Movement::MoveSplineFlag::EnableFalling
void EnableFalling()
Definition
MoveSplineFlag.h:95
Movement::MoveSplineFlag::EnableFacingTarget
void EnableFacingTarget()
Definition
MoveSplineFlag.h:99
Movement::MoveSplineFlag::isFacing
bool isFacing() const
Definition
MoveSplineFlag.h:78
Movement::MoveSplineFlag::enter_cycle
bool enter_cycle
Definition
MoveSplineFlag.h:114
Movement::MoveSplineFlag::isLinear
bool isLinear() const
Definition
MoveSplineFlag.h:77
Movement::MoveSplineFlag::EnableAnimation
void EnableAnimation(uint8 anim)
Definition
MoveSplineFlag.h:92
Movement::MoveSplineFlag::unknown3
bool unknown3
Definition
MoveSplineFlag.h:118
Movement::MoveSplineFlag::uncompressedPath
bool uncompressedPath
Definition
MoveSplineFlag.h:123
Movement::MoveSplineFlag::hasFlag
bool hasFlag(uint32 f) const
Definition
MoveSplineFlag.h:82
Movement::MoveSplineFlag::operator|=
void operator|=(uint32 f)
Definition
MoveSplineFlag.h:90
Movement::MoveSplineFlag::EnableParabolic
void EnableParabolic()
Definition
MoveSplineFlag.h:93
Movement::MoveSplineFlag::EnableTransportExit
void EnableTransportExit()
Definition
MoveSplineFlag.h:101
Movement::MoveSplineFlag::operator|
uint32 operator|(uint32 f) const
Definition
MoveSplineFlag.h:84
Movement::MoveSplineFlag::EnableCatmullRom
void EnableCatmullRom()
Definition
MoveSplineFlag.h:96
Movement::MoveSplineFlag::EnableFacingAngle
void EnableFacingAngle()
Definition
MoveSplineFlag.h:98
Movement::MoveSplineFlag::EnableFacingPoint
void EnableFacingPoint()
Definition
MoveSplineFlag.h:97
Movement::MoveSplineFlag::final_angle
bool final_angle
Definition
MoveSplineFlag.h:129
Movement::MoveSplineFlag::orientationFixed
bool orientationFixed
Definition
MoveSplineFlag.h:111
Movement::MoveSplineFlag::transportExit
bool transportExit
Definition
MoveSplineFlag.h:117
Movement::MoveSplineFlag::eFlags
eFlags
Definition
MoveSplineFlag.h:24
Movement::MoveSplineFlag::UncompressedPath
@ UncompressedPath
Definition
MoveSplineFlag.h:46
Movement::MoveSplineFlag::Unknown4
@ Unknown4
Definition
MoveSplineFlag.h:42
Movement::MoveSplineFlag::OrientationFixed
@ OrientationFixed
Definition
MoveSplineFlag.h:34
Movement::MoveSplineFlag::Frozen
@ Frozen
Definition
MoveSplineFlag.h:38
Movement::MoveSplineFlag::Final_Angle
@ Final_Angle
Definition
MoveSplineFlag.h:52
Movement::MoveSplineFlag::No_Spline
@ No_Spline
Definition
MoveSplineFlag.h:31
Movement::MoveSplineFlag::Unknown6
@ Unknown6
Definition
MoveSplineFlag.h:47
Movement::MoveSplineFlag::Parabolic
@ Parabolic
Definition
MoveSplineFlag.h:49
Movement::MoveSplineFlag::Walkmode
@ Walkmode
Definition
MoveSplineFlag.h:45
Movement::MoveSplineFlag::Unknown3
@ Unknown3
Definition
MoveSplineFlag.h:41
Movement::MoveSplineFlag::Flying
@ Flying
Definition
MoveSplineFlag.h:33
Movement::MoveSplineFlag::TransportExit
@ TransportExit
Definition
MoveSplineFlag.h:40
Movement::MoveSplineFlag::SmoothGroundPath
@ SmoothGroundPath
Definition
MoveSplineFlag.h:44
Movement::MoveSplineFlag::Cyclic
@ Cyclic
Definition
MoveSplineFlag.h:36
Movement::MoveSplineFlag::Unknown0
@ Unknown0
Definition
MoveSplineFlag.h:27
Movement::MoveSplineFlag::Unknown7
@ Unknown7
Definition
MoveSplineFlag.h:53
Movement::MoveSplineFlag::None
@ None
Definition
MoveSplineFlag.h:25
Movement::MoveSplineFlag::Enter_Cycle
@ Enter_Cycle
Definition
MoveSplineFlag.h:37
Movement::MoveSplineFlag::Catmullrom
@ Catmullrom
Definition
MoveSplineFlag.h:35
Movement::MoveSplineFlag::Unknown9
@ Unknown9
Definition
MoveSplineFlag.h:55
Movement::MoveSplineFlag::FallingSlow
@ FallingSlow
Definition
MoveSplineFlag.h:28
Movement::MoveSplineFlag::Unknown8
@ Unknown8
Definition
MoveSplineFlag.h:54
Movement::MoveSplineFlag::OrientationInversed
@ OrientationInversed
Definition
MoveSplineFlag.h:43
Movement::MoveSplineFlag::Final_Point
@ Final_Point
Definition
MoveSplineFlag.h:50
Movement::MoveSplineFlag::Mask_Animations
@ Mask_Animations
Definition
MoveSplineFlag.h:60
Movement::MoveSplineFlag::Mask_No_Monster_Move
@ Mask_No_Monster_Move
Definition
MoveSplineFlag.h:62
Movement::MoveSplineFlag::Falling
@ Falling
Definition
MoveSplineFlag.h:30
Movement::MoveSplineFlag::Final_Target
@ Final_Target
Definition
MoveSplineFlag.h:51
Movement::MoveSplineFlag::Mask_Final_Facing
@ Mask_Final_Facing
Definition
MoveSplineFlag.h:58
Movement::MoveSplineFlag::Unknown2
@ Unknown2
Definition
MoveSplineFlag.h:32
Movement::MoveSplineFlag::Done
@ Done
Definition
MoveSplineFlag.h:29
Movement::MoveSplineFlag::TransportEnter
@ TransportEnter
Definition
MoveSplineFlag.h:39
Movement::MoveSplineFlag::Mask_Unused
@ Mask_Unused
Definition
MoveSplineFlag.h:64
Movement::MoveSplineFlag::Animation
@ Animation
Definition
MoveSplineFlag.h:48
Movement::MoveSplineFlag::unknown0
bool unknown0
Definition
MoveSplineFlag.h:104
Movement::MoveSplineFlag::EnableTransportEnter
void EnableTransportEnter()
Definition
MoveSplineFlag.h:100
Movement::MoveSplineFlag::MoveSplineFlag
MoveSplineFlag(uint32 f)
Definition
MoveSplineFlag.h:71
Movement::MoveSplineFlag::EnableFlying
void EnableFlying()
Definition
MoveSplineFlag.h:94
Movement::MoveSplineFlag::orientationInversed
bool orientationInversed
Definition
MoveSplineFlag.h:120
Movement::MoveSplineFlag::smoothGroundPath
bool smoothGroundPath
Definition
MoveSplineFlag.h:121
Movement::MoveSplineFlag::transportEnter
bool transportEnter
Definition
MoveSplineFlag.h:116
Movement::MoveSplineFlag::unknown2
bool unknown2
Definition
MoveSplineFlag.h:109
Movement::MoveSplineFlag::done
bool done
Definition
MoveSplineFlag.h:106
Movement::MoveSplineFlag::animId
uint8 animId
Definition
MoveSplineFlag.h:103
Movement::MoveSplineFlag::flying
bool flying
Definition
MoveSplineFlag.h:110
Movement::MoveSplineFlag::MoveSplineFlag
MoveSplineFlag(const MoveSplineFlag &f)
Definition
MoveSplineFlag.h:72
Movement::MoveSplineFlag::unknown8
bool unknown8
Definition
MoveSplineFlag.h:131
Movement::MoveSplineFlag::walkmode
bool walkmode
Definition
MoveSplineFlag.h:122
Movement::MoveSplineFlag::raw
const uint32 & raw() const
Definition
MoveSplineFlag.h:68
Movement::MoveSplineFlag::falling
bool falling
Definition
MoveSplineFlag.h:107
Movement::MoveSplineFlag::raw
uint32 & raw()
Definition
MoveSplineFlag.h:67
Movement
Definition
Unit.h:365
src
server
game
Movement
Spline
MoveSplineFlag.h
Generated on
for Project SkyFire Core by
1.17.0