summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s/System.c4g/Find_Criteria.c
blob: 406bb5a1360d2fe1b4bde06b28d8df5dc88ce0c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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);
}