Fixed #581 for aliens
parent
43901aa62a
commit
934d97a801
|
@ -1921,6 +1921,7 @@ CObject* CRobotMain::DetectObject(Math::Point pos)
|
|||
}
|
||||
|
||||
//! Indicates whether an object is selectable
|
||||
// TODO: Refactor this, calling CControllableObject::GetSelectable should always be enough
|
||||
bool CRobotMain::IsSelectable(CObject* obj)
|
||||
{
|
||||
if (obj->GetType() == OBJECT_TOTO) return true;
|
||||
|
|
|
@ -373,6 +373,8 @@ public:
|
|||
|
||||
void StartDetectEffect(COldObject* object, CObject* target);
|
||||
|
||||
bool IsSelectable(CObject* pObj);
|
||||
|
||||
protected:
|
||||
bool EventFrame(const Event &event);
|
||||
bool EventObject(const Event &event);
|
||||
|
@ -397,7 +399,6 @@ protected:
|
|||
void RemoteCamera(float pan, float zoom, float rTime);
|
||||
void KeyCamera(EventType event, InputSlot key);
|
||||
void AbortMovie();
|
||||
bool IsSelectable(CObject* pObj);
|
||||
void SelectOneObject(CObject* pObj, bool displayError=true);
|
||||
void HelpObject();
|
||||
bool DeselectObject();
|
||||
|
|
|
@ -147,9 +147,8 @@ CObject* CTarget::DetectFriendObject(Math::Point pos)
|
|||
|
||||
if ( !target->GetDetectable() ) continue;
|
||||
if ( target->GetProxyActivate() ) continue;
|
||||
if ( !target->Implements(ObjectInterfaceType::Controllable) ) continue;
|
||||
if ( dynamic_cast<CControllableObject*>(target)->GetSelect() ) continue;
|
||||
if ( !dynamic_cast<CControllableObject*>(target)->GetSelectable() ) continue;
|
||||
if ( target->Implements(ObjectInterfaceType::Controllable) && dynamic_cast<CControllableObject*>(target)->GetSelect() ) continue;
|
||||
if ( !m_main->IsSelectable(target) ) continue;
|
||||
|
||||
if (!target->Implements(ObjectInterfaceType::Old)) continue; // TODO: To be removed after COldObjectInterface is gone
|
||||
|
||||
|
|
Loading…
Reference in New Issue