From e1b30572d41977d9c57982873103437de367311e Mon Sep 17 00:00:00 2001 From: Mittendrein Markus Date: Thu, 3 Mar 2016 15:05:19 +0100 Subject: Crystal spikes dont hit attached objects --- TemplePushing.c4s/System.c4g/Find_Criterions.c | 38 ++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 TemplePushing.c4s/System.c4g/Find_Criterions.c (limited to 'TemplePushing.c4s/System.c4g/Find_Criterions.c') diff --git a/TemplePushing.c4s/System.c4g/Find_Criterions.c b/TemplePushing.c4s/System.c4g/Find_Criterions.c new file mode 100644 index 0000000..406bb5a --- /dev/null +++ b/TemplePushing.c4s/System.c4g/Find_Criterions.c @@ -0,0 +1,38 @@ +/*-- FindObjects search criteria for a certain angle-range --*/ +#strict 2 + +global func SwapIfBigger(&smaller, &bigger) +{ + if (bigger < smaller) + { + var swap = smaller; + smaller = bigger; + bigger = swap; + } +} + +global func Find_Angle(int angleStart, int angleEnd, bool biggerPart, int x, int y) +{ + while (angleStart < 0) angleStart += 360; + while (angleEnd < 0) angleEnd += 360; + angleStart %= 360; + angleEnd %= 360; + SwapIfBigger(angleStart, angleEnd); + if (angleEnd - angleStart > 180) biggerPart = !biggerPart; + return [C4FO_Func, "Find_AngleCheck", angleStart, angleEnd, biggerPart, GetX() + x, GetY() + y]; +} + +global func Find_AngleCheck(int angleStart, int angleEnd, bool biggerPart, int x, int y) +{ + var angle = Angle(x, y, GetX(), GetY()); + var inside = Inside(angle, angleStart, angleEnd); + var ret; + if (biggerPart) ret = !inside; + else ret = inside; + return ret; +} + +global func Find_Procedure(string procedure) +{ + return Find_FuncEqual("GetProcedure()", procedure); +} -- cgit v1.2.3-54-g00ecf