#include #include #include #include #include "message.h" static char* messageptr; static int messxpos; static short sinewave; static u_char messon = 0; void StartMessage(char* messptr) { messageptr = messptr; messxpos = 320; sinewave = 0; messon = 1; } void PlotMessage(GsOT* OT) { GsSPRITE letterspr; int letterno = 0; int x = messxpos; short sine = sinewave; char letter; if (messon) { InitGsSprite(&letterspr); while (x<320 && *(messageptr+letterno)!=0) { letterspr.x = x; letterspr.y = 120+(DJsin(sine)>>8); letter = *(messageptr+letterno); if (letter!=32) { CalcLetterPos(&letterspr, letter); GsSortFastSprite(&letterspr, OT, 3); } x+=16; letterno++; if ((sine+=256) >= 4096) sine-=4096; } } } u_char Message() { u_char retval = 0; if (messon) { if ((messxpos-=2) == -16) { if ((sinewave+=256) >= 4096) sinewave-=4096; messxpos = 0; messageptr++; if (*(messageptr)==0) {retval = 1; messon = 0;} } if ((sinewave+=64) >= 4096) sinewave-=4096; } return retval; }