diff options
Diffstat (limited to 'TemplePushing.c4s')
| -rw-r--r-- | TemplePushing.c4s/Script.c | 2 | ||||
| -rw-r--r-- | TemplePushing.c4s/System.c4g/FindObjectsLayer.c | 33 |
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;
+ }
+}
|
