typedef struct Keyword
{
STRING* Word;
COLOR Color;
} Keyword;
Keyword Keywords[2];
FONT* fontTest = "Arial#20";
STRING* strFile[4000];
void InitKeywords()
{
Keywords[0].Word = str_create("unendlich");
vec_set(Keywords[0].Color, vector(255,0,0));
Keywords[1].Word = str_create("Satz");
vec_set(Keywords[1].Color, vector(0,255,0));
}
action DialogTrigger()
{
InitKeywords();
DsPanelE.pos_x = 400;
DsPanelE.pos_y = 400;
var strWidth = 0;
var posX =30, posY = 30;
var charCount;
var counter = 0;
int i;
while(1)
{
var dist = abs(vec_dist(player.x, my.x));
if(dist < 255)
{
set(DsPanelE, SHOW);
if(key_pressed(key_for_str(keyE)))
{
while(key_pressed(key_for_str(keyE)))
wait(1);
while(!key_pressed(key_for_str(keyE)))
{
set(DsPanel, SHOW);
var fileHandle = file_open_read("ColoredText.txt");
if (fileHandle)
{
while(1)
{
if(charCount == -1)
break;
strFile[counter] = str_create("");
charCount = file_str_readto(fileHandle,strFile[counter], " ", 4000);
pan_setdigits(DsPanel, 0, posX,posY, strFile[counter], fontTest, 1, 0);
for(i = 0; i< 2; i++)
{
if(str_cmp(Keywords[i].Word, strFile[counter])) {
pan_setcolor(DsPanel, 1, counter, Keywords[i].Color);
break;
}
}
strWidth += str_width (strFile[counter], fontTest);
if(strWidth < 250)
{
posX = strWidth + 10;
}
else
{
posY += 30;
posX = 30;
strWidth = 0;
}
counter++;
wait(1);
}
file_close (fileHandle);
}
reset(DsPanelE, SHOW);
wait(1);
}
while(key_pressed(key_for_str(keyE)))
wait(1);
reset(DsPanel, SHOW);
set(DsPanelE, SHOW);
}
}
else
{
reset(DsPanelE, SHOW);
reset(DsPanel, SHOW);
}
wait(1);
}
}