summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s/System.c4g/Helpers.c
blob: 09153761a728b023e00221b44f266bae1a43f2d1 (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
39
40
41
42
43
44
45
46
47
48
/*-- Helpers --*/

#strict 2

global func IIf(expression, truePart, falsePart)
{
	if (expression)
	{
		return truePart;
	}
	else
	{
		return falsePart;
	}
}

global func RGBpA(int rgb, int a) { return (a & 255)<<24 | rgb & 0xFFFFFF; }

global func CleanAngle(&angle)
{
	if (angle > 360) angle = angle % 360;
	else while (angle < 0) angle += 360;
}

global func Angle180(int angle)
{
	CleanAngle(angle);
	if (angle > 180) angle -= 360;
	return angle;
}

global func Angle360(int angle)
{
	CleanAngle(angle);
	return angle;
}

// Fisher-Yates Shuffle
global func ShuffleArray(array& arr)
{
	for(var i = GetLength(arr); i > 0; --i)
	{
		var randomIndex = Random(i);
		var tmp = arr[i - 1];
		arr[i - 1] = arr[randomIndex];
		arr[randomIndex] = tmp;
	}
}