summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2017-05-18 11:46:21 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2017-05-18 11:46:21 +0200
commit02eeba571ddf5ed6d7892c1f6ba5e161f02454b8 (patch)
treeb09b307eb7698842ba53ec63220ec46b50456cf6
parent85354626853786b1d9ce9b99cd26a15a120eedda (diff)
downloadObjectsAppend-02eeba571ddf5ed6d7892c1f6ba5e161f02454b8.tar.gz
ObjectsAppend-02eeba571ddf5ed6d7892c1f6ba5e161f02454b8.zip
Improve compatibility of Line pickup with Clonk Mars (Use LineKitID callback)
-rw-r--r--System.c4g/DTSelectionContext.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/System.c4g/DTSelectionContext.c b/System.c4g/DTSelectionContext.c
index 2cd4aba..3584efa 100644
--- a/System.c4g/DTSelectionContext.c
+++ b/System.c4g/DTSelectionContext.c
@@ -239,6 +239,11 @@ global func HasLine(bool lineCheck, object target)
}
}
+func GetKitID(object line)
+{
+ return line->~KitID() || line->~LineKitID() || LNKT;
+}
+
func FindConnections(bool single)
{
var targets = FindObjects(Find_AtPoint(), Find_Exclude(this), Find_Or(Find_OCF(OCF_LineConstruct), Find_Func("HasLine")));
@@ -248,7 +253,7 @@ func FindConnections(bool single)
var lines = FindObjects(Find_Action("Connect"), Find_Or(Find_ActionTarget(target), Find_ActionTarget2(target)));
for(var line in lines)
{
- var kit = line->~KitID() || LNKT;
+ var kit = GetKitID(line);
if(GetID(GetActionTarget(0, line)) == kit || GetID(GetActionTarget(1, line)) == kit) // not connected on the other side
{
continue;
@@ -359,7 +364,7 @@ func RemoveLineEntry(id id, int pos)
return false;
}
- var lnkt = CreateObject(connection[1]->~KitID() || LNKT, 0, 0, GetOwner());
+ var lnkt = CreateObject(GetKitID(connection[1]), 0, 0, GetOwner());
Collect(lnkt);
Sound("Connect");
if(GetActionTarget(0, connection[1]) == connection[0])