-
Notifications
You must be signed in to change notification settings - Fork 1
/
Utils.asc
43 lines (39 loc) · 1.15 KB
/
Utils.asc
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
// Disable all cursor modes except the given one
static void Utils::RestrictCursorsTo(CursorMode cm)
{
mouse.EnableMode(cm);
for (int i = 0; i <= eModeUsermode2; i++) {
if (i != cm) {
mouse.DisableMode(i);
}
}
mouse.Mode = cm;
}
// Clamps (restricts) position of a rectangle (x,y,w,h) to the parent rectangle
// (xmin, ymin, xmax, ymax). Returns the resulting position.
static Point* Utils::ClampPosition(int x, int y, int w, int h, int xmin, int ymin, int xmax, int ymax)
{
if (x < xmin) x = xmin;
if (y < ymin) y = ymin;
if (x + w > xmax) x = xmax - w;
if (y + h > ymax) y = ymax - h;
Point* p = new Point;
p.x = x;
p.y = y;
return p;
}
// Hides all the GUIs in game by setting Visible = false
static void Utils::HideAllGUI()
{
for (int i = 0; i < Game.GUICount; i++) {
gui[i].Visible = false;
}
}
// DisplayTopBar aligned to the bottom-center of the screen.
// Uses character's SpeechColor and writes its name in the title.
static void Utils::SpeechBox(Character* c, String text)
{
int small_height = 0;
int y = 3 * (Screen.Height / 4) - small_height;
DisplayTopBar(y, 0, c.SpeechColor, c.Name, text);
}