Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
HomeMovementGenerator.cpp
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
#include "
Creature.h
"
7
#include "
CreatureAI.h
"
8
#include "
HomeMovementGenerator.h
"
9
#include "
MoveSpline.h
"
10
#include "
MoveSplineInit.h
"
11
#include "
WorldPacket.h
"
12
13
void
HomeMovementGenerator<Creature>::DoInitialize
(
Creature
* owner)
14
{
15
_setTargetLocation
(owner);
16
}
17
18
void
HomeMovementGenerator<Creature>::DoFinalize
(
Creature
* owner)
19
{
20
if
(
arrived
)
21
{
22
owner->
ClearUnitState
(
UNIT_STATE_EVADE
);
23
owner->
SetWalk
(
true
);
24
owner->
LoadCreaturesAddon
(
true
);
25
owner->
AI
()->
JustReachedHome
();
26
}
27
}
28
29
void
HomeMovementGenerator<Creature>::DoReset
(
Creature
*) { }
30
31
void
HomeMovementGenerator<Creature>::_setTargetLocation
(
Creature
* owner)
32
{
33
if
(owner->
HasUnitState
(
UNIT_STATE_ROOT
|
UNIT_STATE_STUNNED
|
UNIT_STATE_DISTRACTED
))
34
return
;
35
36
Movement::MoveSplineInit
init(owner);
37
float
x, y, z, o;
38
// at apply we can select more nice return points base at current movegen
39
if
(owner->
GetMotionMaster
()->
empty
() || !owner->
GetMotionMaster
()->
top
()->
GetResetPosition
(owner, x, y, z))
40
{
41
owner->
GetHomePosition
(x, y, z, o);
42
init.
SetFacing
(o);
43
}
44
init.
MoveTo
(x, y, z);
45
init.
SetWalk
(
false
);
46
init.
Launch
();
47
48
arrived
=
false
;
49
50
owner->
ClearUnitState
(
uint32
(
UNIT_STATE_ALL_STATE
& ~
UNIT_STATE_EVADE
));
51
}
52
53
bool
HomeMovementGenerator<Creature>::DoUpdate
(
Creature
* owner,
const
uint32
/*time_diff*/
)
54
{
55
arrived
= owner->
movespline
->Finalized();
56
return
!
arrived
;
57
}
Creature.h
CreatureAI.h
uint32
std::uint32_t uint32
Definition
Define.h:77
HomeMovementGenerator.h
MoveSpline.h
MoveSplineInit.h
UNIT_STATE_DISTRACTED
@ UNIT_STATE_DISTRACTED
Definition
Unit.h:524
UNIT_STATE_EVADE
@ UNIT_STATE_EVADE
Definition
Unit.h:533
UNIT_STATE_ALL_STATE
@ UNIT_STATE_ALL_STATE
Definition
Unit.h:550
UNIT_STATE_ROOT
@ UNIT_STATE_ROOT
Definition
Unit.h:522
UNIT_STATE_STUNNED
@ UNIT_STATE_STUNNED
Definition
Unit.h:515
WorldPacket.h
CreatureAI::JustReachedHome
virtual void JustReachedHome()
Definition
CreatureAI.h:123
Creature
Definition
Creature.h:427
Creature::LoadCreaturesAddon
bool LoadCreaturesAddon(bool reload=false)
Definition
Creature.cpp:2019
Creature::GetHomePosition
void GetHomePosition(float &x, float &y, float &z, float &ori) const
Definition
Creature.h:628
Creature::AI
CreatureAI * AI() const
Definition
Creature.h:483
HomeMovementGenerator< Creature >::HomeMovementGenerator
HomeMovementGenerator()
Definition
HomeMovementGenerator.h:21
HomeMovementGenerator< Creature >::_setTargetLocation
void _setTargetLocation(Creature *)
Definition
HomeMovementGenerator.cpp:31
HomeMovementGenerator< Creature >::arrived
bool arrived
Definition
HomeMovementGenerator.h:32
MotionMaster::top
_Ty top() const
Definition
MotionMaster.h:95
MotionMaster::empty
bool empty() const
Definition
MotionMaster.h:93
Movement::MoveSplineInit
Definition
MoveSplineInit.h:40
Movement::MoveSplineInit::SetWalk
void SetWalk(bool enable)
Definition
MoveSplineInit.h:147
Movement::MoveSplineInit::Launch
int32 Launch()
Definition
MoveSplineInit.cpp:46
Movement::MoveSplineInit::SetFacing
void SetFacing(float angle)
Definition
MoveSplineInit.cpp:143
Movement::MoveSplineInit::MoveTo
void MoveTo(const Vector3 &destination, bool generatePath=true, bool forceDestination=false)
Definition
MoveSplineInit.cpp:157
MovementGenerator::GetResetPosition
virtual bool GetResetPosition(Unit *, float &, float &, float &)
Definition
MovementGenerator.h:34
Unit::ClearUnitState
void ClearUnitState(uint32 f)
Definition
Unit.h:1489
Unit::GetMotionMaster
MotionMaster * GetMotionMaster()
Definition
Unit.h:2605
Unit::SetWalk
bool SetWalk(bool enable)
Definition
Unit.cpp:9137
Unit::HasUnitState
bool HasUnitState(const uint32 f) const
Definition
Unit.h:1485
Unit::movespline
std::unique_ptr< Movement::MoveSpline > movespline
Definition
Unit.h:2837
src
server
game
Movement
MovementGenerators
HomeMovementGenerator.cpp
Generated on
for Project SkyFire Core by
1.17.0