aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/Debugcmds.cpp22
-rw-r--r--src/game/MovementHandler.cpp7
2 files changed, 18 insertions, 11 deletions
diff --git a/src/game/Debugcmds.cpp b/src/game/Debugcmds.cpp
index 356b2c25ca2..fda50f8b9a6 100644
--- a/src/game/Debugcmds.cpp
+++ b/src/game/Debugcmds.cpp
@@ -739,16 +739,20 @@ bool ChatHandler::HandleDebugEnterVehicle(const char * args)
uint32 entry = (uint32)atoi(i);
int8 seatId = j ? (int8)atoi(j) : -1;
- Creature *passenger = NULL;
- Trinity::AllCreaturesOfEntryInRange check(m_session->GetPlayer(), entry, 20.0f);
- Trinity::CreatureSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(m_session->GetPlayer(), passenger, check);
- m_session->GetPlayer()->VisitNearbyObject(20.0f, searcher);
- if(!passenger || passenger == target)
- return false;
-
- passenger->EnterVehicle((Vehicle*)target, seatId);
+ if(!entry)
+ m_session->GetPlayer()->EnterVehicle((Vehicle*)target, seatId);
+ else
+ {
+ Creature *passenger = NULL;
+ Trinity::AllCreaturesOfEntryInRange check(m_session->GetPlayer(), entry, 20.0f);
+ Trinity::CreatureSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(m_session->GetPlayer(), passenger, check);
+ m_session->GetPlayer()->VisitNearbyObject(30.0f, searcher);
+ if(!passenger || passenger == target)
+ return false;
+ passenger->EnterVehicle((Vehicle*)target, seatId);
+ }
- PSendSysMessage("Creature entered vehicle %d", (uint32)seatId);
+ PSendSysMessage("Unit %u entered vehicle %d", entry, (int32)seatId);
return true;
}
diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp
index 59d0d263227..53aa5923782 100644
--- a/src/game/MovementHandler.cpp
+++ b/src/game/MovementHandler.cpp
@@ -517,9 +517,12 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data)
recv_data >> seatId;
if(!guid)
- GetPlayer()->ChangeSeat(-1, seatId > 0);
+ GetPlayer()->ChangeSeat(-1, seatId > 0); // prev/next
else if(Vehicle *vehicle = ObjectAccessor::GetVehicle(guid))
- GetPlayer()->EnterVehicle(vehicle, seatId);
+ {
+ if(vehicle->HasEmptySeat(seatId))
+ GetPlayer()->EnterVehicle(vehicle, seatId);
+ }
}
void WorldSession::HandleRequestVehicleExit(WorldPacket &recv_data)