home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mega A/V
/
mega_av.zip
/
mega_av
/
GRAPHUTL
/
FRASR172.ZIP
/
INTRO.C
< prev
next >
Wrap
Text File
|
1991-04-11
|
3KB
|
123 lines
/*
* intro.c
*
* FRACTINT intro screen (authors & credits)
*
*
*/
#include "fractint.h"
#include "helpdefs.h"
#include <time.h>
#include <dos.h>
/* stuff from fractint */
extern int lookatmouse;
extern long timer_start;
extern int helpmode;
extern int extraseg;
void putstring (int x, int y, int attr, unsigned char far * msg);
int putstringcenter (int x, int y, int width, int attr, char far * msg);
void setattr (int x, int y, int attr, int width);
void scrollup (int top, int bot);
void movecursor (int x, int y);
void setclear (void);
void helptitle (void);
int getakey (void);
int keypressed (void);
int read_help_topic (int label, int off, int len, void far *buf);
void intro_overlay(void) { }
void intro(void)
{
int toprow, botrow, i, j, delaymax;
char oldchar;
int authors[100]; /* this should be enough for awhile */
char far *credits;
char far *screen_text;
int oldlookatmouse;
int oldhelpmode;
ENTER_OVLY(OVLY_INTRO);
timer_start -= clock(); /* "time out" during help */
oldlookatmouse = lookatmouse;
oldhelpmode = helpmode;
lookatmouse = 0; /* de-activate full mouse checking */
screen_text = MK_FP(extraseg, 0);
i = 32767 + read_help_topic(INTRO_AUTHORS, 0, 32767, screen_text);
screen_text[i++] = '\0';
credits = screen_text + i;
i = 32767 + read_help_topic(INTRO_CREDITS, 0, 32767, credits);
credits[i++] = '\0';
j = 0;
authors[j] = 0; /* find the start of each credit-line */
for (i = 0; credits[i] != 0; i++)
if (credits[i] == 10)
authors[++j] = i+1;
authors[j+1] = i;
helptitle();
toprow = 8;
botrow = 21;
putstringcenter(1,0,80,C_TITLE, "Press ENTER for main menu, F1 for help.");
putstring(2,0,C_CONTRIB,screen_text);
setattr(2,0,C_AUTHDIV1,80);
setattr(7,0,C_AUTHDIV1,80);
setattr(22,0,C_AUTHDIV2,80);
setattr(3,0,C_PRIMARY,320);
setattr(23,0,C_TITLE_LOW,160);
for (i = 3; i < 7; ++i)
setattr(i,20,C_CONTRIB,60);
setattr(toprow,0,C_CONTRIB,14*80);
i = botrow - toprow;
oldchar = credits[authors[i+1]];
credits[authors[i+1]] = 0;
putstring(toprow,0,C_CONTRIB,credits);
credits[authors[i+1]] = oldchar;
delaymax = 10;
movecursor(25,80); /* turn it off */
helpmode = HELPMENU;
while (! keypressed())
{
for (j = 0; j < delaymax && !(keypressed()); j++)
delay(100);
if (keypressed() == 32)
{ /* spacebar pauses */
getakey();
while (!keypressed()) ;
if (keypressed() == 32)
getakey();
}
delaymax = 15;
scrollup(toprow, botrow);
i++;
if (credits[authors[i]] == 0)
i = 0;
oldchar = credits[authors[i+1]];
credits[authors[i+1]] = 0;
putstring(botrow,0,C_CONTRIB,&credits[authors[i]]);
setattr(botrow,0,C_CONTRIB,80);
credits[authors[i+1]] = oldchar;
movecursor(25,80); /* turn it off */
}
lookatmouse = oldlookatmouse; /* restore the mouse-checking */
helpmode = oldhelpmode;
EXIT_OVLY;
return ;
}