aboutsummaryrefslogtreecommitdiff
path: root/src/game/Vehicle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Vehicle.cpp')
-rw-r--r--src/game/Vehicle.cpp32
1 files changed, 29 insertions, 3 deletions
diff --git a/src/game/Vehicle.cpp b/src/game/Vehicle.cpp
index a788bec1c48..f2d023300fe 100644
--- a/src/game/Vehicle.cpp
+++ b/src/game/Vehicle.cpp
@@ -45,6 +45,7 @@ void Vehicle::AddToWorld()
AIM_Initialize();
switch(GetEntry())
{
+ case 27850:InstallAccessory(27905,1);break;
case 28312:InstallAccessory(28319,7);break;
case 32627:InstallAccessory(32629,7);break;
}
@@ -154,6 +155,30 @@ bool Vehicle::HasEmptySeat(int8 seatNum) const
return !seat->second.passenger;
}
+int8 Vehicle::GetNextEmptySeat(int8 seatNum, bool next) const
+{
+ SeatMap::const_iterator seat = m_Seats.find(seatNum);
+ if(seat == m_Seats.end()) return -1;
+ while(seat->second.passenger)
+ {
+ if(next)
+ {
+ ++seat;
+ if(seat == m_Seats.end())
+ seat = m_Seats.begin();
+ }
+ else
+ {
+ if(seat == m_Seats.begin())
+ seat = m_Seats.end();
+ --seat;
+ }
+ if(seat->first == seatNum)
+ return -1;
+ }
+ return seat->first;
+}
+
void Vehicle::InstallAccessory(uint32 entry, int8 seatNum)
{
//Creature *accessory = SummonCreature(entry, GetPositionX(), GetPositionY(), GetPositionZ());
@@ -197,12 +222,13 @@ bool Vehicle::AddPassenger(Unit *unit, int8 seatNum)
seat->second.passenger = unit;
//RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
+ //SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_24);
unit->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT);
VehicleSeatEntry const *veSeat = seat->second.seatInfo;
- unit->m_movementInfo.t_x = 0;//veSeat->m_attachmentOffsetX;
- unit->m_movementInfo.t_y = 0;//veSeat->m_attachmentOffsetY;
- unit->m_movementInfo.t_z = 0;//veSeat->m_attachmentOffsetZ;
+ unit->m_movementInfo.t_x = veSeat->m_attachmentOffsetX;
+ unit->m_movementInfo.t_y = veSeat->m_attachmentOffsetY;
+ unit->m_movementInfo.t_z = veSeat->m_attachmentOffsetZ;
unit->m_movementInfo.t_o = 0;
unit->m_movementInfo.t_time = 4;
unit->m_movementInfo.t_seat = seat->first;