root/trunk/src/game/FleeingMovementGenerator.h @ 28

Revision 2, 2.0 kB (checked in by yumileroy, 17 years ago)

[svn] * Proper SVN structure

Original author: Neo2003
Date: 2008-10-02 16:23:55-05:00

Line 
1/*
2* Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/>
3*
4* This program is free software; you can redistribute it and/or modify
5* it under the terms of the GNU General Public License as published by
6* the Free Software Foundation; either version 2 of the License, or
7* (at your option) any later version.
8*
9* This program is distributed in the hope that it will be useful,
10* but WITHOUT ANY WARRANTY; without even the implied warranty of
11* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12* GNU General Public License for more details.
13*
14* You should have received a copy of the GNU General Public License
15* along with this program; if not, write to the Free Software
16* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17*/
18
19#ifndef MANGOS_FLEEINGMOVEMENTGENERATOR_H
20#define MANGOS_FLEEINGMOVEMENTGENERATOR_H
21
22#include "MovementGenerator.h"
23#include "DestinationHolder.h"
24#include "Traveller.h"
25#include "MapManager.h"
26
27template<class T>
28class MANGOS_DLL_SPEC FleeingMovementGenerator
29: public MovementGeneratorMedium< T, FleeingMovementGenerator<T> >
30{
31    public:
32        FleeingMovementGenerator(uint64 fright) : i_frightGUID(fright), i_nextCheckTime(0) {}
33
34        void Initialize(T &);
35        void Finalize(T &);
36        void Reset(T &);
37        bool Update(T &, const uint32 &);
38
39        MovementGeneratorType GetMovementGeneratorType() { return FLEEING_MOTION_TYPE; }
40
41    private:
42        void _setTargetLocation(T &owner);
43        bool _getPoint(T &owner, float &x, float &y, float &z);
44        bool _setMoveData(T &owner);
45        void _Init(T &);
46
47        bool is_water_ok   :1;
48        bool is_land_ok    :1;
49        bool i_only_forward:1;
50
51        float i_caster_x;
52        float i_caster_y;
53        float i_caster_z;
54        float i_last_distance_from_caster;
55        float i_to_distance_from_caster;
56        float i_cur_angle;
57        TimeTracker i_nextCheckTime;
58        uint64 i_frightGUID;
59
60        DestinationHolder< Traveller<T> > i_destinationHolder;
61};
62#endif
Note: See TracBrowser for help on using the browser.