| 458 | } |
| 459 | |
| 460 | S32 arcaneFX::rolloverRayCast(Point3F start, Point3F end, U32 mask) |
| 461 | { |
| 462 | sIsFreeTargeting = false; |
| 463 | #if !defined(AFX_CAP_ROLLOVER_RAYCASTS) |
| 464 | return -1; |
| 465 | #else |
| 466 | GameConnection* conn = GameConnection::getConnectionToServer(); |
| 467 | SceneObject* ctrl_obj = NULL; |
| 468 | |
| 469 | if (!arcaneFX::sClickToTargetSelf && conn != NULL) |
| 470 | ctrl_obj = conn->getControlObject(); |
| 471 | |
| 472 | if (ctrl_obj) |
| 473 | ctrl_obj->disableCollision(); |
| 474 | |
| 475 | SceneObject* rollover_obj = (conn) ? conn->getRolloverObj() : 0; |
| 476 | SceneObject* picked_obj = 0; |
| 477 | |
| 478 | RayInfo hit_info; |
| 479 | if (gClientContainer.castRay(start, end, mask, &hit_info)) |
| 480 | picked_obj = dynamic_cast<SceneObject*>(hit_info.object); |
| 481 | |
| 482 | if (ctrl_obj) |
| 483 | ctrl_obj->enableCollision(); |
| 484 | |
| 485 | if (picked_obj != rollover_obj) |
| 486 | { |
| 487 | if (rollover_obj) |
| 488 | rollover_obj->setSelectionFlags(rollover_obj->getSelectionFlags() & ~SceneObject::PRE_SELECTED); |
| 489 | if (picked_obj) |
| 490 | picked_obj->setSelectionFlags(picked_obj->getSelectionFlags() | SceneObject::PRE_SELECTED); |
| 491 | rollover_obj = picked_obj; |
| 492 | |
| 493 | if (conn) |
| 494 | conn->setRolloverObj(rollover_obj); |
| 495 | } |
| 496 | |
| 497 | return (picked_obj) ? picked_obj->getId() : -1; |
| 498 | #endif |
| 499 | } |
| 500 | |
| 501 | bool arcaneFX::freeTargetingRayCast(Point3F start, Point3F end, U32 mask) |
| 502 | { |
nothing calls this directly
no test coverage detected