var html, i, j, str, c, c2, sw, lineHeight;
surface=surface_create(1280, 720);
html=argument0;
surface_set_target(surface);
draw_set_color(c_white);
draw_rectangle(0, 0, 1280, 720, false);
draw_set_color(c_black);
sh=32;
lineHeight=0;
for (i=0; i<ds_list_size(html.page); i+=1){
str=ds_list_find_value(html.page, i);
sw=0;
sh+=lineHeight+4;
lineHeight=0;
for (j=1; j<=string_length(str); j+=1){
c=string_char_at(str, j);
if (c=="\"){
// Ignore the rest of the line
} else if (c=="<"){
// Start a tag
c="";
while (j<string_length(str)){
j+=1;
c2=string_char_at(str, j);
if (c2==">")
break;
else
c+=c2;
}
var terms;
terms=string_split(string_lower(c), "=");
c=de(terms);
if (string_char_at(c, 1)=="/"){
c=string_copy(c, 2, string_length(c)-1);
switch (c){
case "p":
// i really don't remember why I decided I needed this
break;
case "i":
isItalic=false;
break;
case "u":
isUnderlined=false;
break;
case "strike":
isStrike=false;
break;
case "b":
isBold=false;
break;
case "h1":
draw_set_font(FontDefault);
draw_set_color(c_black);
break;
case "planewalker":
draw_set_font(FontDefault);
break;
case "color":
draw_set_color(c_black);
break;
case "sup":
verticalOffset=0;
break;
case "sub":
verticalOffset=0;
break;
}
} else {
switch (c){
case "p":
// i really don't remember why I decided I needed this
break;
case "i":
isItalic=355; // degree slant of italic text
break;
case "u":
isUnderlined=true;
break;
case "strike":
isStrike=true;
break;
case "b":
isBold=true;
break;
case "h1":
draw_set_font(FontH1);
draw_set_color(c_blue);
break;
case "planewalker":
draw_set_font(FontPlanewalker);
break;
case "color":
setHTMLColor(de(terms));
break;
case "sup":
verticalOffset=-1;
break;
case "sub":
verticalOffset=1;
break;
}
}
ds_queue_destroy(terms);
} else if (c=="$"){
// Value
} else if (c=="%"){
// Function/Script call
} else {
// Actual text
var dim;
dim=string_split(addHTMLCharacter(32+sw, 32+sh, c), ",");
sw+=real(de(dim))+1;
lineHeight=max(lineHeight, real(de(dim)));
ds_queue_destroy(dim);
}
}
}
surface_reset_target();
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎