summaryrefslogtreecommitdiffstats
path: root/System.c4g
diff options
context:
space:
mode:
Diffstat (limited to 'System.c4g')
-rw-r--r--System.c4g/ClonkAutoBuy.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/System.c4g/ClonkAutoBuy.c b/System.c4g/ClonkAutoBuy.c
index 70a020a..0722fcf 100644
--- a/System.c4g/ClonkAutoBuy.c
+++ b/System.c4g/ClonkAutoBuy.c
@@ -5,22 +5,23 @@ func ControlCommandAcquire(object target, Tx, int Ty, object target2, id def)
{ // TODO: decide based on distance to AvailableObject/Homebase and Retriever which one to use
if(!target) // TODO: avoid "stealing"
{
- var retriever = FindObject2(Find_InRect(-500, -250, 1000, 500), Find_Func("IsRetriever"), Find_Func("CanRetrieveObject", def, false, target2), Find_Exclude(target), Sort_Distance());
+ var excludeOrigin = target2 || Contained();
+ var retriever = FindObject2(Find_InRect(-500, -250, 1000, 500), Find_Func("IsRetriever"), Find_Func("CanRetrieveObject", def, false, excludeOrigin), Find_Exclude(target), Sort_Distance());
if(retriever)
{
FinishCommand(this, true);
- if(retriever->~HowToProduce(this, def, target2))
+ if(retriever->~HowToProduce(this, def, excludeOrigin))
{
return true;
}
}
- if(!GetAvailableObject (def, target2))
+ if(!GetAvailableObject(def, target2))
{
- var produceRetriever = FindObject2(Find_InRect(-500, -250, 1000, 500), Find_Func("IsRetriever"), Find_Func("CanRetrieveObject", def, true, target2), Find_Exclude(target), Sort_Distance());
+ var produceRetriever = FindObject2(Find_InRect(-500, -250, 1000, 500), Find_Func("IsRetriever"), Find_Func("CanRetrieveObject", def, true, excludeOrigin), Find_Exclude(target), Sort_Distance());
if(produceRetriever)
{
FinishCommand(this, true);
- if(produceRetriever->~HowToProduce(this, def, target2))
+ if(produceRetriever->~HowToProduce(this, def, excludeOrigin))
{
return true;
}