Add PracticeBot alias detection in search() and detect()

modernize-cmake-1
Fiftytwo 2017-12-21 14:44:43 +01:00
parent ca0ff013d4
commit 0fddd79501
1 changed files with 30 additions and 2 deletions

View File

@ -809,16 +809,30 @@ bool runSearch(CBotVar* var, Math::Vector pos, int& exception, std::function<boo
{
while ( array != nullptr )
{
if (array->GetValInt() == OBJECT_MOBILEpr)
{
type_v.push_back(OBJECT_MOBILEwt);
type_v.push_back(OBJECT_MOBILEtt);
type_v.push_back(OBJECT_MOBILEft);
type_v.push_back(OBJECT_MOBILEit);
}
type_v.push_back(static_cast<ObjectType>(array->GetValInt()));
array = array->GetNext();
}
}
else
{
if (type != OBJECT_NULL)
if (type != OBJECT_NULL && type != OBJECT_MOBILEpr)
{
type_v.push_back(static_cast<ObjectType>(type));
}
else if (type == OBJECT_MOBILEpr)
{
type_v.push_back(OBJECT_MOBILEwt);
type_v.push_back(OBJECT_MOBILEtt);
type_v.push_back(OBJECT_MOBILEft);
type_v.push_back(OBJECT_MOBILEit);
}
}
return code(type_v, pos, minDist, maxDist, sens < 0, filter);
@ -1169,16 +1183,30 @@ bool CScriptFunctions::rDetect(CBotVar* var, CBotVar* result, int& exception, vo
{
while ( array != nullptr )
{
if (array->GetValInt() == OBJECT_MOBILEpr)
{
type_v.push_back(OBJECT_MOBILEwt);
type_v.push_back(OBJECT_MOBILEtt);
type_v.push_back(OBJECT_MOBILEft);
type_v.push_back(OBJECT_MOBILEit);
}
type_v.push_back(static_cast<ObjectType>(array->GetValInt()));
array = array->GetNext();
}
}
else
{
if (type != OBJECT_NULL)
if (type != OBJECT_NULL && type != OBJECT_MOBILEpr)
{
type_v.push_back(static_cast<ObjectType>(type));
}
else if (type == OBJECT_MOBILEpr)
{
type_v.push_back(OBJECT_MOBILEwt);
type_v.push_back(OBJECT_MOBILEtt);
type_v.push_back(OBJECT_MOBILEft);
type_v.push_back(OBJECT_MOBILEit);
}
}
pBest = CObjectManager::GetInstancePointer()->Radar(pThis, type_v, 0.0f, 45.0f*Math::PI/180.0f, 0.0f, 20.0f, false, FILTER_NONE, true);