Fix AdventureBot group preparation, public portals and flight recovery
clang PCH / build (push) Canceled after 0s
GCC PCH / build (push) Canceled after 0s

Add preparation outings and equipment checks with a five-minute return to the meeting point. Correct static portal visitor casting and level conditions, with native interaction diagnostics. Recover suspended flying mounts, walk to verified takeoff sites, and validate landing and return volumes. Include SQL migrations, targeted regression tests and live validation checkpoints.
This commit is contained in:
Nico committed 2026-10-29 18:21:43 +01:00
1 parent 2841ee973b
commit 54d77d1e4d
60 files changed
+1607 -33

No files matched your search

@@ -589,7 +589,8 @@ bool ClientlessTravelGraphMgr::PlanAdaptiveRoute(
bool const flightEnabled = sClientlessFlightMgr->Enabled(player);
auto flightCost = [&](ClientlessTravelNode const& from, uint32 map, float x, float y, float z, bool access = false)
{
if (!flightEnabled || from.MapId != map)
if (!flightEnabled || from.MapId != map ||
(blockedBridgeKeys && blockedBridgeKeys->count("flight_origin:"+from.Key)))
return std::numeric_limits<float>::infinity();
Position a,b; a.Relocate(from.X,from.Y,from.Z,from.O); b.Relocate(x,y,z);
auto begin=std::chrono::steady_clock::now();++trace.FlightCalls;
@@ -721,6 +722,7 @@ bool ClientlessTravelGraphMgr::PlanAdaptiveRoute(
entryNav.FinalDistance <= 1.5f && entryNav.MaxSegmentLength <= 8.0f &&
entryNav.MaxZDelta <= 5.0f && entryNav.PathLength <= 500.0f;
ClientlessTravelNode departure;
departure.Key="flight_departure";
departure.MapId=player->GetMapId();departure.X=player->GetPositionX();departure.Y=player->GetPositionY();departure.Z=player->GetPositionZ();
float air=blockedBridgeKeys && blockedBridgeKeys->count("flight:flight_departure->"+node.Key)?
std::numeric_limits<float>::infinity():flightCost(departure,node.MapId,node.X,node.Y,node.Z,!reachable);