summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s
diff options
context:
space:
mode:
Diffstat (limited to 'TemplePushing.c4s')
-rw-r--r--TemplePushing.c4s/Script.c2
-rw-r--r--TemplePushing.c4s/System.c4g/FindObjectsLayer.c33
2 files changed, 35 insertions, 0 deletions
diff --git a/TemplePushing.c4s/Script.c b/TemplePushing.c4s/Script.c
index 54e1ec3..ac18165 100644
--- a/TemplePushing.c4s/Script.c
+++ b/TemplePushing.c4s/Script.c
@@ -607,6 +607,8 @@ func LaunchClonk(int player, object clonk, bool relaunch)
clonk->SetCrewEnabled(false);
clonk->SetCrewEnabled(true);
clonk->Schedule("SelectCrew(GetOwner(), this, true)", 20);
+ clonk->SetObjectLayer(clonk);
+ clonk->Schedule("SetObjectLayer(0)", 50);
}
// Respawn effects
diff --git a/TemplePushing.c4s/System.c4g/FindObjectsLayer.c b/TemplePushing.c4s/System.c4g/FindObjectsLayer.c
new file mode 100644
index 0000000..178a7b7
--- /dev/null
+++ b/TemplePushing.c4s/System.c4g/FindObjectsLayer.c
@@ -0,0 +1,33 @@
+#strict 2
+
+global func FindObjects()
+{
+ return _inherited(Find_And(Find_Layer(GetObjectLayer(this)), ...));
+}
+
+global func FindObject2()
+{
+ return _inherited(Find_And(Find_Layer(GetObjectLayer(this)), ...));
+}
+
+global func FindObject(a, b, c, d, e, f, g, h, i, object findNext)
+{
+ var ret = findNext, layer = GetObjectLayer(this);
+ for(;;)
+ {
+ ret = _inherited(a, b, c, d, e, f, g, h, i, ret);
+ if (GetObjectLayer(ret) == layer) return ret;
+ if (ret == 0) return 0;
+ }
+}
+
+global func FindObjectOwner(a, b, c, d, e, f, g, h, i, object findNext)
+{
+ var ret = findNext, layer = GetObjectLayer(this);
+ for(;;)
+ {
+ ret = _inherited(a, b, c, d, e, f, g, h, i, ret);
+ if (GetObjectLayer(ret) == layer) return ret;
+ if (ret == 0) return 0;
+ }
+}