You can check if the speech overlay is still valid.
Something like:
1. Declare:
[code]Overlay* EGObgspeaking;[/code]
2. When he has to say something in background, save the returned overlay pointer:
[code]EGObgspeaking = cEgo.SayBackground("....");[/code]
3. If you want to check whether the text is still displayed, just check if the overlay is still valid via EGObgspeaking.Valid.
If I guessed what you need, you want to make Ego and Man says something simultaneously, then, after that, Ego, says another line, you can do it like:
[code]
Overlay* EGObgspeaking=cEgo.SayBackground("....");
Overlay* MANbgspeaking=cMan.SayBackground("....");
while ((EGObgspeaking.Valid)&&(MANbgspeaking.Valid)) Wait(1);
cEgo.Say("...");[/code]
However, you can also first check whether EGO or MAN's line will last longer (usually the one with more characters), then use Say instead of SayBackground for that, for example:
[code]
cMan.SayBackground("Hello!");
cEgo.Say("How are you, man?");
cEgo.Say("Hehe.");[/code]
This is simpler I think.