Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
VehicleDefines.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 SF_VEHICLEDEFINES_H
7
#define SF_VEHICLEDEFINES_H
8
9
#include "
Define.h
"
10
#include <map>
11
#include <vector>
12
13
struct
VehicleSeatEntry
;
14
15
enum
PowerType
16
{
17
POWER_STEAM
= 61,
18
POWER_PYRITE
= 41,
19
POWER_HEAT
= 101,
20
POWER_OOZE
= 121,
21
POWER_BLOOD
= 141,
22
POWER_WRATH
= 142,
23
POWER_ARCANE_ENERGY
= 143,
24
POWER_LIFE_ENERGY
= 144,
25
POWER_SUN_ENERGY
= 145,
26
POWER_SWING_VELOCITY
= 146,
27
POWER_SHADOWFLAME_ENERGY
= 147,
28
POWER_BLUE_POWER
= 148,
29
POWER_PURPLE_POWER
= 149,
30
POWER_GREEN_POWER
= 150,
31
POWER_ORANGE_POWER
= 151,
32
POWER_ENERGY_2
= 153,
33
POWER_ARCANEENERGY
= 161,
34
POWER_WIND_POWER_1
= 162,
35
POWER_WIND_POWER_2
= 163,
36
POWER_WIND_POWER_3
= 164,
37
POWER_FUEL
= 165,
38
POWER_SUN_POWER
= 166,
39
POWER_TWILIGHT_ENERGY
= 169,
40
POWER_VENOM
= 174,
41
POWER_ORANGE_POWER_2
= 176,
42
POWER_CONSUMING_FLAME
= 177,
43
POWER_PYROCLASTIC_FRENZY
= 178,
44
POWER_FLASHFIRE
= 179,
45
POWER_FEL_ENERGY
= 181,
46
POWER_BACK_HEAT
= 183,
47
POWER_JADE_POWER
= 187,
48
POWER_COBALT_POWER
= 188,
49
POWER_JASPER_POWER
= 189,
50
POWER_AMETHYST_POWER
= 190,
51
POWER_ARCANE_ENERGY_2
= 191,
52
POWER_RED_POWER
= 192,
53
POWER_RED_POWER_2
= 196,
54
POWER_WILLPOWER
= 198,
55
POWER_DARK_POWER
= 199,
56
POWER_GOLD_POWER
= 200,
57
POWER_RESONANCE
= 201,
58
POWER_SHA_ENERGY
= 203,
59
POWER_FOOD
= 206
60
};
61
62
enum
VehicleFlags
63
{
64
VEHICLE_FLAG_NO_STRAFE
= 0x00000001,
// Sets MOVEFLAG2_NO_STRAFE
65
VEHICLE_FLAG_NO_JUMPING
= 0x00000002,
// Sets MOVEFLAG2_NO_JUMPING
66
VEHICLE_FLAG_FULLSPEEDTURNING
= 0x00000004,
// Sets MOVEFLAG2_FULLSPEEDTURNING
67
VEHICLE_FLAG_ALLOW_PITCHING
= 0x00000010,
// Sets MOVEFLAG2_ALLOW_PITCHING
68
VEHICLE_FLAG_FULLSPEEDPITCHING
= 0x00000020,
// Sets MOVEFLAG2_FULLSPEEDPITCHING
69
VEHICLE_FLAG_CUSTOM_PITCH
= 0x00000040,
// If set use pitchMin and pitchMax from DBC, otherwise pitchMin = -pi/2, pitchMax = pi/2
70
VEHICLE_FLAG_ADJUST_AIM_ANGLE
= 0x00000400,
// Lua_IsVehicleAimAngleAdjustable
71
VEHICLE_FLAG_ADJUST_AIM_POWER
= 0x00000800
// Lua_IsVehicleAimPowerAdjustable
72
};
73
74
enum
VehicleSpells
75
{
76
VEHICLE_SPELL_RIDE_HARDCODED
= 46598,
77
VEHICLE_SPELL_PARACHUTE
= 45472
78
};
79
80
struct
PassengerInfo
81
{
82
uint64
Guid
;
83
bool
IsUnselectable
;
84
85
void
Reset
()
86
{
87
Guid
= 0;
88
IsUnselectable
=
false
;
89
}
90
};
91
92
struct
VehicleSeat
93
{
94
explicit
VehicleSeat
(
VehicleSeatEntry
const
* seatInfo) :
SeatInfo
(seatInfo)
95
{
96
Passenger
.Reset();
97
}
98
99
bool
IsEmpty
()
const
{
return
!
Passenger
.Guid; }
100
101
VehicleSeatEntry
const
*
SeatInfo
;
102
PassengerInfo
Passenger
;
103
};
104
105
struct
VehicleAccessory
106
{
107
VehicleAccessory
(
uint32
entry,
int8
seatId,
bool
isMinion,
uint8
summonType,
uint32
summonTime) :
108
AccessoryEntry
(entry),
IsMinion
(isMinion),
SummonTime
(summonTime),
SeatId
(seatId),
SummonedType
(summonType) { }
109
uint32
AccessoryEntry
;
110
uint32
IsMinion
;
111
uint32
SummonTime
;
112
int8
SeatId
;
113
uint8
SummonedType
;
114
};
115
116
typedef
std::vector<VehicleAccessory>
VehicleAccessoryList
;
117
typedef
std::map<uint32, VehicleAccessoryList>
VehicleAccessoryContainer
;
118
typedef
std::map<int8, VehicleSeat>
SeatMap
;
119
120
class
TransportBase
121
{
122
protected
:
123
TransportBase
() { }
124
virtual
~TransportBase
() { }
125
126
public
:
128
virtual
void
CalculatePassengerPosition
(
float
& x,
float
& y,
float
& z,
float
* o = NULL)
const
= 0;
129
131
virtual
void
CalculatePassengerOffset
(
float
& x,
float
& y,
float
& z,
float
* o = NULL)
const
= 0;
132
133
protected
:
134
static
void
CalculatePassengerPosition
(
float
& x,
float
& y,
float
& z,
float
* o,
float
transX,
float
transY,
float
transZ,
float
transO)
135
{
136
float
inx = x, iny = y, inz = z;
137
if
(o)
138
*o =
Position::NormalizeOrientation
(transO + *o);
139
140
x = transX + inx * std::cos(transO) - iny * std::sin(transO);
141
y = transY + iny * std::cos(transO) + inx * std::sin(transO);
142
z = transZ + inz;
143
}
144
145
static
void
CalculatePassengerOffset
(
float
& x,
float
& y,
float
& z,
float
* o,
float
transX,
float
transY,
float
transZ,
float
transO)
146
{
147
if
(o)
148
*o =
Position::NormalizeOrientation
(*o - transO);
149
150
z -= transZ;
151
y -= transY;
// y = searchedY * std::cos(o) + searchedX * std::sin(o)
152
x -= transX;
// x = searchedX * std::cos(o) + searchedY * std::sin(o + pi)
153
float
inx = x, iny = y;
154
y = (iny - inx * std::tan(transO)) / (std::cos(transO) + std::sin(transO) * std::tan(transO));
155
x = (inx + iny * std::tan(transO)) / (std::cos(transO) + std::sin(transO) * std::tan(transO));
156
}
157
};
158
159
#endif
Define.h
uint8
std::uint8_t uint8
Definition
Define.h:79
uint32
std::uint32_t uint32
Definition
Define.h:77
int8
std::int8_t int8
Definition
Define.h:75
uint64
std::uint64_t uint64
Definition
Define.h:76
PowerType
PowerType
Definition
VehicleDefines.h:16
POWER_GOLD_POWER
@ POWER_GOLD_POWER
Definition
VehicleDefines.h:56
POWER_PURPLE_POWER
@ POWER_PURPLE_POWER
Definition
VehicleDefines.h:29
POWER_VENOM
@ POWER_VENOM
Definition
VehicleDefines.h:40
POWER_FUEL
@ POWER_FUEL
Definition
VehicleDefines.h:37
POWER_LIFE_ENERGY
@ POWER_LIFE_ENERGY
Definition
VehicleDefines.h:24
POWER_ARCANE_ENERGY_2
@ POWER_ARCANE_ENERGY_2
Definition
VehicleDefines.h:51
POWER_SUN_ENERGY
@ POWER_SUN_ENERGY
Definition
VehicleDefines.h:25
POWER_ARCANEENERGY
@ POWER_ARCANEENERGY
Definition
VehicleDefines.h:33
POWER_SHA_ENERGY
@ POWER_SHA_ENERGY
Definition
VehicleDefines.h:58
POWER_JASPER_POWER
@ POWER_JASPER_POWER
Definition
VehicleDefines.h:49
POWER_GREEN_POWER
@ POWER_GREEN_POWER
Definition
VehicleDefines.h:30
POWER_RED_POWER
@ POWER_RED_POWER
Definition
VehicleDefines.h:52
POWER_ORANGE_POWER
@ POWER_ORANGE_POWER
Definition
VehicleDefines.h:31
POWER_FLASHFIRE
@ POWER_FLASHFIRE
Definition
VehicleDefines.h:44
POWER_ORANGE_POWER_2
@ POWER_ORANGE_POWER_2
Definition
VehicleDefines.h:41
POWER_STEAM
@ POWER_STEAM
Definition
VehicleDefines.h:17
POWER_JADE_POWER
@ POWER_JADE_POWER
Definition
VehicleDefines.h:47
POWER_RESONANCE
@ POWER_RESONANCE
Definition
VehicleDefines.h:57
POWER_FOOD
@ POWER_FOOD
Definition
VehicleDefines.h:59
POWER_RED_POWER_2
@ POWER_RED_POWER_2
Definition
VehicleDefines.h:53
POWER_BLOOD
@ POWER_BLOOD
Definition
VehicleDefines.h:21
POWER_SHADOWFLAME_ENERGY
@ POWER_SHADOWFLAME_ENERGY
Definition
VehicleDefines.h:27
POWER_PYRITE
@ POWER_PYRITE
Definition
VehicleDefines.h:18
POWER_HEAT
@ POWER_HEAT
Definition
VehicleDefines.h:19
POWER_TWILIGHT_ENERGY
@ POWER_TWILIGHT_ENERGY
Definition
VehicleDefines.h:39
POWER_COBALT_POWER
@ POWER_COBALT_POWER
Definition
VehicleDefines.h:48
POWER_WRATH
@ POWER_WRATH
Definition
VehicleDefines.h:22
POWER_OOZE
@ POWER_OOZE
Definition
VehicleDefines.h:20
POWER_ARCANE_ENERGY
@ POWER_ARCANE_ENERGY
Definition
VehicleDefines.h:23
POWER_BLUE_POWER
@ POWER_BLUE_POWER
Definition
VehicleDefines.h:28
POWER_ENERGY_2
@ POWER_ENERGY_2
Definition
VehicleDefines.h:32
POWER_BACK_HEAT
@ POWER_BACK_HEAT
Definition
VehicleDefines.h:46
POWER_AMETHYST_POWER
@ POWER_AMETHYST_POWER
Definition
VehicleDefines.h:50
POWER_WIND_POWER_1
@ POWER_WIND_POWER_1
Definition
VehicleDefines.h:34
POWER_DARK_POWER
@ POWER_DARK_POWER
Definition
VehicleDefines.h:55
POWER_SWING_VELOCITY
@ POWER_SWING_VELOCITY
Definition
VehicleDefines.h:26
POWER_WIND_POWER_2
@ POWER_WIND_POWER_2
Definition
VehicleDefines.h:35
POWER_WIND_POWER_3
@ POWER_WIND_POWER_3
Definition
VehicleDefines.h:36
POWER_PYROCLASTIC_FRENZY
@ POWER_PYROCLASTIC_FRENZY
Definition
VehicleDefines.h:43
POWER_CONSUMING_FLAME
@ POWER_CONSUMING_FLAME
Definition
VehicleDefines.h:42
POWER_WILLPOWER
@ POWER_WILLPOWER
Definition
VehicleDefines.h:54
POWER_SUN_POWER
@ POWER_SUN_POWER
Definition
VehicleDefines.h:38
POWER_FEL_ENERGY
@ POWER_FEL_ENERGY
Definition
VehicleDefines.h:45
SeatMap
std::map< int8, VehicleSeat > SeatMap
Definition
VehicleDefines.h:118
VehicleSpells
VehicleSpells
Definition
VehicleDefines.h:75
VEHICLE_SPELL_PARACHUTE
@ VEHICLE_SPELL_PARACHUTE
Definition
VehicleDefines.h:77
VEHICLE_SPELL_RIDE_HARDCODED
@ VEHICLE_SPELL_RIDE_HARDCODED
Definition
VehicleDefines.h:76
VehicleAccessoryContainer
std::map< uint32, VehicleAccessoryList > VehicleAccessoryContainer
Definition
VehicleDefines.h:117
VehicleFlags
VehicleFlags
Definition
VehicleDefines.h:63
VEHICLE_FLAG_NO_JUMPING
@ VEHICLE_FLAG_NO_JUMPING
Definition
VehicleDefines.h:65
VEHICLE_FLAG_ADJUST_AIM_ANGLE
@ VEHICLE_FLAG_ADJUST_AIM_ANGLE
Definition
VehicleDefines.h:70
VEHICLE_FLAG_NO_STRAFE
@ VEHICLE_FLAG_NO_STRAFE
Definition
VehicleDefines.h:64
VEHICLE_FLAG_FULLSPEEDTURNING
@ VEHICLE_FLAG_FULLSPEEDTURNING
Definition
VehicleDefines.h:66
VEHICLE_FLAG_ALLOW_PITCHING
@ VEHICLE_FLAG_ALLOW_PITCHING
Definition
VehicleDefines.h:67
VEHICLE_FLAG_CUSTOM_PITCH
@ VEHICLE_FLAG_CUSTOM_PITCH
Definition
VehicleDefines.h:69
VEHICLE_FLAG_ADJUST_AIM_POWER
@ VEHICLE_FLAG_ADJUST_AIM_POWER
Definition
VehicleDefines.h:71
VEHICLE_FLAG_FULLSPEEDPITCHING
@ VEHICLE_FLAG_FULLSPEEDPITCHING
Definition
VehicleDefines.h:68
VehicleAccessoryList
std::vector< VehicleAccessory > VehicleAccessoryList
Definition
VehicleDefines.h:116
TransportBase::CalculatePassengerPosition
virtual void CalculatePassengerPosition(float &x, float &y, float &z, float *o=NULL) const =0
This method transforms supplied transport offsets into global coordinates.
TransportBase::CalculatePassengerPosition
static void CalculatePassengerPosition(float &x, float &y, float &z, float *o, float transX, float transY, float transZ, float transO)
Definition
VehicleDefines.h:134
TransportBase::CalculatePassengerOffset
virtual void CalculatePassengerOffset(float &x, float &y, float &z, float *o=NULL) const =0
This method transforms supplied global coordinates into local offsets.
TransportBase::TransportBase
TransportBase()
Definition
VehicleDefines.h:123
TransportBase::CalculatePassengerOffset
static void CalculatePassengerOffset(float &x, float &y, float &z, float *o, float transX, float transY, float transZ, float transO)
Definition
VehicleDefines.h:145
TransportBase::~TransportBase
virtual ~TransportBase()
Definition
VehicleDefines.h:124
PassengerInfo
Definition
VehicleDefines.h:81
PassengerInfo::IsUnselectable
bool IsUnselectable
Definition
VehicleDefines.h:83
PassengerInfo::Reset
void Reset()
Definition
VehicleDefines.h:85
PassengerInfo::Guid
uint64 Guid
Definition
VehicleDefines.h:82
Position::NormalizeOrientation
static float NormalizeOrientation(float o)
Definition
Object.h:427
VehicleAccessory::SummonTime
uint32 SummonTime
Definition
VehicleDefines.h:111
VehicleAccessory::AccessoryEntry
uint32 AccessoryEntry
Definition
VehicleDefines.h:109
VehicleAccessory::VehicleAccessory
VehicleAccessory(uint32 entry, int8 seatId, bool isMinion, uint8 summonType, uint32 summonTime)
Definition
VehicleDefines.h:107
VehicleAccessory::SeatId
int8 SeatId
Definition
VehicleDefines.h:112
VehicleAccessory::IsMinion
uint32 IsMinion
Definition
VehicleDefines.h:110
VehicleAccessory::SummonedType
uint8 SummonedType
Definition
VehicleDefines.h:113
VehicleSeatEntry
Definition
DBCStructure.h:2862
VehicleSeat::VehicleSeat
VehicleSeat(VehicleSeatEntry const *seatInfo)
Definition
VehicleDefines.h:94
VehicleSeat::IsEmpty
bool IsEmpty() const
Definition
VehicleDefines.h:99
VehicleSeat::Passenger
PassengerInfo Passenger
Definition
VehicleDefines.h:102
VehicleSeat::SeatInfo
VehicleSeatEntry const * SeatInfo
Definition
VehicleDefines.h:101
src
server
game
Entities
Vehicle
VehicleDefines.h
Generated on
for Project SkyFire Core by
1.17.0