55 lines
1.7 KiB
Plaintext
55 lines
1.7 KiB
Plaintext
// log_update(str,width)
|
|
//
|
|
// str - string to append to the log
|
|
// width - width of area (in pixels) log will be displayed
|
|
|
|
var str, logw, i, loop;
|
|
|
|
str=argument0;
|
|
logw=argument1;
|
|
loop=true;
|
|
|
|
// Escape number signs to prevent unwanted newlines
|
|
str=string_replace_all(str,"#","\#");
|
|
|
|
while (loop){
|
|
if(string_width(str)>logw){
|
|
// The string is too long to be displayed on one line.
|
|
if(string_pos(" ",str)&&(string_width(string_copy(str,1,string_pos(" ",str)))<logw)){
|
|
// There's a space before str exceeds the display width
|
|
i=string_length(str);
|
|
repeat(string_length(str)){
|
|
if((string_char_at(str,i)==" ")&&(string_width(string_copy(str,1,i))<logw)){
|
|
chatLog=chatLog+string_copy(str,1,i-1)+EOL;
|
|
str=string_delete(str,1,i);
|
|
break;
|
|
}
|
|
i-=1;
|
|
}
|
|
} else {
|
|
// No space before str exceeds the display width
|
|
i=string_length(str);
|
|
repeat(string_length(str)){
|
|
if(string_width(string_copy(str,1,i))<logw){
|
|
str=string_insert("-",str,i-1);
|
|
chatLog=chatLog+string_copy(str,1,i-1)+EOL;
|
|
str=string_delete(str,1,i);
|
|
break;
|
|
}
|
|
i-=1;
|
|
}
|
|
}
|
|
|
|
} else {
|
|
// The string will fit, just add it to the log.
|
|
chatLog=chatLog+str+EOL;
|
|
loop=false;
|
|
}
|
|
|
|
// Update the Scrollbar
|
|
if(get_scrollbarvalue(chatScrollbar)==string_count(EOL,chatLog)-2){
|
|
global.___sb[chatScrollbar,1]+=1;
|
|
}
|
|
|
|
}
|