clear col                                 - Clears the entire room in the given color (no alpha blending).
point x y                                 - Draws a point at (x y) in the current color.
point_color x y col1                      - Draws a point at (x y) in the given color.
line x1 y1 x2 y2                          - Draws a line from (x1 y1) to (x2 y2).
line_color x1 y1 x2 y2 col1 col2          - Draws a line from (x1 y1) to (x2 y2), interpolating the color between col1 and col2.
line_width x1 y1 x2 y2 w                  - Draws a line from (x1 y1) to (x2 y2) with width w.
line_width_color x1 y1 x2 y2 w col1 col2  - Draws a line from (x1 y1) to (x2 y2) with width w interpolating the color between col1 and col2.
rectangle x1 y1 x2 y2 outline             - Draws a rectangle. outline indicates whether only the outline must be drawn (true) or it should be filled (false).
rectangle_color x1 y1 x2 y2 col1 col2 col3 col4 outline - Draws a rectangle. The four colors indicated the colors at the top-left, top-right, bottom-right, and bottom-left vertex. outline indicates whether only the outline must be drawn (true) or it should be filled (false).
roundrect x1 y1 x2 y2 outline             - Draws a rounded rectangle. outline indicates whether only the outline must be drawn (true) or it should be filled (false).
roundrect_color x1 y1 x2 y2 col1 col2 outline - Draws a rounded rectangle. col1 is the color in the middle and col2 the color at the boundary. outline indicates whether only the outline must be drawn (true) or it should be filled (false).
triangle x1 y1 x2 y2 x3 y3 outline        - Draws a triangle. outline indicates whether only the outline must be drawn (true) or it should be filled (false).
triangle_color x1 y1 x2 y2 x3 y3 col1 col2 col3 outline - Draws a triangle. The three colors are the colors of the three vertices which is interpolated over the triangle. outline indicates whether only the outline must be drawn (true) or it should be filled (false).
circle x y r outline                      - Draws a circle at (x y) with radius r. outline indicates whether only the outline must be drawn (true) or it should be filled (false).
circle_color(x y r col1 col2 outline      - Draws a circle at (x,y) with radius r. col1 is the color in the middle and col2 the color at the boundary. outline indicates whether only the outline must be drawn (true) or it should be filled (false).
ellipse x1 y1 x2 y2 outline               - Draws an ellipse. outline indicates whether only the outline must be drawn (true) or it should be filled (false).
ellipse_color x1 y1 x2 y2 col1 col2 outline - Draws an ellipse. col1 is the color in the middle and col2 the color at the boundary. outline indicates whether only the outline must be drawn (true) or it should be filled (false).
arrow x1 y1 x2 y2 size                    - Draws an arrow from (x1 y1) to (x2 y2). size indicates the size of the arrow in pixels.
color col                                 - Sets the drawing color to be used from now on for drawing primitives.
alpha alpha                               - Sets the alpha transparency value to be used from now on for drawing primitives. Should lie in the range 0-1. 0 is fully transparent, 1 is fully opaque.
RGB red green blue                        - Returns a color with the indicated red, green, and blue components, where red, green and blue must be values between 0 and 255.
HSV hue saturation value                  - Returns a color with the indicated hue, saturation and value components (each between 0 and 255).
merge_color col1 col2 amount              - Returns a merged color of col1 and col2. The merging is determined by amount. A value of 0 corresponds to col1, a value of 1 to col2, and values in between to merged values.
getpixel x y                              - Returns the color of the pixel corresponding to position (x y) in the room. This is not very fast, so use with care.

text x y string                           - Draws the string at position (x y), using the drawing color and alpha. A # symbol or carriage return chr(13) or
text_color x y string c1 c2 c3 c4 alpha   - Draws the string at position (x y) like above. The four colors specify the colors of the top-left, top-right, bottom-right, and bottom-left corner of the text. alpha is the alpha transparency to be used (0-1).

primitive_begin kind                      - Start a primitive of the indicated kind.
vertex x y                                - Add vertex (x y) to the primitive, using the color and alpha value set before.
vertex_color x y col alpha                - Add vertex (x y) to the primitive, with its own color and alpha value. This allows you to create primitives with smoothly changing color and alpha values.
primitive_end                             - End the description of the primitive. This function actually draws it.

    pointlist                             - The vertices are a set of points.
	linelist                              - The vertices are a set of line segments. Each pair of vertices forms a line segment. So there must be an even set of vertices.
	linestrip                             - The vertices form a polyline with the first connected to the second, the second to the third, etc. The last one is not connected to the first one. You have to specify an extra copy of the first vertex for this.
    trianglelist                          - The vertices are a set of triangles. Each triple of vertices forms a triangle. So the number of vertices must be a multiple of 3.
    trianglestrip                         - The vertices again form triangles but this time it works slightly different. The first three form the first triangle. The last two of these vertices, together with the next vertex, form the second triangle, etc. So each new vertex specifies a new triangle, connected to the previous one
    trianglefan                           - Similar to a triangle list but this time the first vertex is part of all the triangles. Again, each new vertex specifies a new triangle, connected to the previous vertex and the first vertex.


    COLORS:

    white
    black
    red
    green
    blue
    olive_green
    dark_green
    dark_teal
    dark_blue
    indigo
    gray
    dark_red
    orange
    dark_yellow
    teal
    blue_grey
    grey40
    light_orange
    lime
    sea_green
    aqua
    light_blue
    violet
    gray50
    pink
    gold
    yellow
    bright_green
    turquoise
    sky_blue
    plum
    light_gray
    rose
    tan
    light_yellow
    pale_green
    pale_turquoise
    pale_blue
    lavender

///////////////////////////////////////////////////////////////////////////////////

	 var x 0; - declare real variable x = 0
	 var x "text"; - declare string variable x = "text"
	 x++; - error
	 x ++; - ok (x += 1)
	 x += 10; - ok
	 x /= 5; - ok
	 x *= 15; - ok
	 x -= 6; - ok
	 x = 100; - ok
	 x = "test string"; - ok
	 x = text string; - error
	 
	 text 10 10 "test"; - ok
	 
	 text
	 10
	 10
	 "test"; - ok
	 
	 text(10 10 "test"); - ok
	 text((10) (10) ("test")); - ok
///////////////////////////////////////////////////////////////////////////////////

	switch argument;
	{;
		case value;
		/.../
		code;
		/.../
		break;
		/.../
		default;
		/.../
		code;
		/.../
	}
	
	Example:

	var test 10;

	switch test;
	{
		case 0;
		text 100 100 "value 0";
		break;
		case 5;
		text 100 100 "value 5";
		break;
		case 10;
		text 100 100 "value 10";
		break;
		case 15;
		text 100 100 "value 15";
		break;
		default;
		text 100 100 "value default";
	};

///////////////////////////////////////////////////////////////////////////////////

	primitive_begin argument;
		vertex x y ;
		vertex_color x y col alpha;
	primitive_end;

	Example:

	primitive_begin trianglestrip;

		color sea_green;
		vertex 200 100;

		color RGB 255 255 0;
		vertex 100 300;

		vertex_color 300 300 gold 1;

	primitive_end;

///////////////////////////////////////////////////////////////////////////////////

	color yellow;
	text 100 100 "text";
	---
	color 184457;
	text 100 100 "text";
	---
	color RGB red 255 0;
	text 100 100 "text";
	---
	color HSV 128 255 128;
	text 100 100 "text";
	---
	
	line 10 10 100 10;
	---
    line random 10 10 100 10   ;
         |        | |   |  |   |
		 ---------- |   |  |   |
		      x     y   x1 y1  end line
	---
	var x 100;

	point x 300;
	
	---
	var y 0;
	var x y;
	repeat (100);
	begin;
		point_color x y RGB random 255 random 255 random 255;
		x ++;
		y ++;
	end;
