Here are a few functions I made in GML to be used as alternates to not-done-yet functions. Most are pretty simple, but hey.

**frac(x)**argument0=string(argument0);

for (i=string_length(argument0);i>0;i+=1;)

{

if string_char_at(i+1)!='.' then

{

array[i]=string_char_at(i);

}

else

{

array[i]='0';

}

}

string='';

for (i=0;i<string_length(argument0);i+=1;)

{

string+=array[i];

}

return real(string);

**draw_point(x,y)**draw_line(argument0,argument1,argument0,argument1);

**draw_triangle(x1,y1,x2,y2,x3,y3,outline)**if argument6=true then pr_type=pr_linestrip else pr_type=pr_trianglelist;

draw_primitive_begin(pr_type);

draw_vertex(argument0,argument1);

draw_vertex(argument2,argument3);

draw_vertex(argument4,argument5);

if pr_type=pr_linestrip then draw_vertex(argument0,argument1);

draw_primitive_end();

**draw_arrow(x1,y1,x2,y2,size);**draw_line(argument0,argument1,argument2,argument3);

draw_primitive_begin(pr_trianglelist);

draw_vertex(argument2,argument3);

x2=argument2+cos(degtorad(point_direction(argument2,argument3,argument0,argument1)+45))*argument4;

y2=argument2-sin(degtorad(point_direction(argument2,argument3,argument0,argument1)+45))*argument4;

draw_vertex(x2,y2);

x3=argument2+cos(degtorad(point_direction(argument2,argument3,argument0,argument1)+45))*argument4;

y3=argument2-sin(degtorad(point_direction(argument2,argument3,argument0,argument1)+45))*argument4;

draw_vertex(x3,y3);

draw_vertex(argument2,argument3);

draw_primitive_end();

**draw_point_color(x,y,col1)**col=draw_get_color();

draw_set_color(argument2);

draw_line(argument0,argument1,argument0,argument1);

draw_set_color(col);

**draw_triangle_color(x1,y1,x2,y2,x3,y3,col1,col2,col3,outline)**if argument9=true then pr_type=pr_linestrip else pr_type=pr_trianglelist;

draw_primitive_begin(pr_type);

draw_vertex_color(argument0,argument1,argument6);

draw_vertex_color(argument2,argument3,argument7);

draw_vertex_color(argument4,argument5,argument8);

if pr_type=pr_linestrip then draw_vertex(argument0,argument1);

draw_primitive_end();