void PlanetManagerImplementation::scheduleShuttle(CreatureObject* shuttle, int shuttleType) { Locker clocket(_this.getReferenceUnsafeStaticCast(), shuttle); const uint64 oid = shuttle->getObjectID(); if (shuttleMap.contains(oid)) { // this shuttle is already known, no need for a 2nd task return; } shuttle->setPosture(CreaturePosture::UPRIGHT); ShuttleDepartureTask* task = new ShuttleDepartureTask(shuttle); switch (shuttleType) { case SHUTTLEPORT: task->setLandedTime(shuttleportLandedTime); task->setLandingTime(shuttleportLandingTime); task->setDepartedTime(shuttleportAwayTime); break; case STARPORT: task->setLandedTime(starportLandedTime); task->setLandingTime(starportLandingTime); task->setDepartedTime(starportAwayTime); break; } task->schedule((task->getLandedTime() + task->getLandingTime()) * 1000); shuttleMap.put(oid, task); }
void PlanetManagerImplementation::scheduleShuttle(CreatureObject* shuttle, int shuttleType) { Locker locket(_this.get()); shuttle->setPosture(CreaturePosture::UPRIGHT); ShuttleDepartureTask* task = new ShuttleDepartureTask(shuttle); switch (shuttleType) { case SHUTTLEPORT: task->setLandedTime(shuttleportLandedTime); task->setLandingTime(shuttleportLandingTime); task->setDepartedTime(shuttleportAwayTime); break; case STARPORT: task->setLandedTime(starportLandedTime); task->setLandingTime(starportLandingTime); task->setDepartedTime(starportAwayTime); break; } task->schedule((task->getLandedTime() + task->getLandingTime()) * 1000); shuttleMap.put(shuttle->getObjectID(), task); }