Upload
This commit is contained in:
commit
43352ff262
1291 changed files with 220976 additions and 0 deletions
243
MAIN/MENU.C
Normal file
243
MAIN/MENU.C
Normal file
|
|
@ -0,0 +1,243 @@
|
|||
/* UNREAL 2 - Startup menu
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <dos.h>
|
||||
#include <string.h>
|
||||
#include <malloc.h>
|
||||
#include "..\dis\dis.h"
|
||||
|
||||
int col[]={
|
||||
0x00, /* 0=default color */
|
||||
0x08, /* 1=switch name */
|
||||
0x09, /* 2=switch value */
|
||||
0x0a, /* 3=switch description */
|
||||
0x0b, /* 4=bottom line */
|
||||
0x0c, /* 5=bottom line key */
|
||||
0x0f, /* 6=DONOTDISTRIBUTE */
|
||||
};
|
||||
|
||||
#include "vidtext.c"
|
||||
|
||||
int nilli;
|
||||
int menuy=0;
|
||||
int *menux=&nilli;
|
||||
|
||||
#define RGB(r,g,b) { outp(0x3c9,r); outp(0x3c9,g); outp(0x3c9,b); }
|
||||
|
||||
int m_detail=0;
|
||||
int m_soundcard=3;
|
||||
int m_soundquality=2;
|
||||
int m_looping=0;
|
||||
int m_exit=0;
|
||||
|
||||
void delay(int f)
|
||||
{
|
||||
while(f--)
|
||||
{
|
||||
while(!(inp(0x3da)&8));
|
||||
while((inp(0x3da)&8));
|
||||
}
|
||||
}
|
||||
|
||||
menu()
|
||||
{
|
||||
int y,a;
|
||||
|
||||
delay(1);
|
||||
|
||||
outp(0x3c8,0);
|
||||
for(a=0;a<768;a++) outp(0x3c9,0);
|
||||
|
||||
delay(5);
|
||||
|
||||
dosgotoxy(0,50);
|
||||
gotoxy(0,0);
|
||||
for(y=0;y<50;y++) prtt("~0 ");
|
||||
gotoxy(0,0);
|
||||
prtt(" ~4ù~5S~4ù~5E~4ù~5C~4ù~5O~4ù~5N~4ù~5D~4ù~5 ~4ù~5R~4ù~5E~4ù~5A~4ù~5L~4ù~5I~4ù~5T~4ù~5Y~4ù "
|
||||
"~3(7-OCT-93)~0 ~4 Copyright (C) 1993 ~5Future Crew~4");
|
||||
/*
|
||||
gotoxy(0,2);
|
||||
prtt(" ~6Do not distribute! (just had to say that) This version must not be shown to \n");
|
||||
prtt(" ~6anyone outside Future Crew. Remember, officially: we aren't sure we can get \n");
|
||||
prtt(" ~6this thing finished for Assembly, but we sure are trying to!");
|
||||
*/
|
||||
gotoxy(0,24);
|
||||
prtt(" ~5\x18~4/~5\x19~4 - change selection ~5\x1b~4/~5\x1a~4 - change an entry ~5<ÄÙ~4 - continue ~5ESC~4 - exit ");
|
||||
|
||||
mainmenu();
|
||||
|
||||
delay(20);
|
||||
|
||||
outp(0x3c8,0);
|
||||
RGB(0,0,0);
|
||||
RGB(16,16,24); // bar
|
||||
RGB(13,0,0);
|
||||
RGB(43,0,0);
|
||||
RGB(23,0,0);
|
||||
RGB(53,0,0);
|
||||
RGB(33,0,0); // do not use
|
||||
RGB(63,0,0);
|
||||
outp(0x3c8,56);
|
||||
RGB(0,50,63);
|
||||
RGB(0,60,63);
|
||||
RGB(25,25,30);
|
||||
RGB(0,30,60);
|
||||
RGB(0,50,60);
|
||||
RGB(63,0,0);
|
||||
RGB(63,0,0);
|
||||
RGB(63,0,0);
|
||||
|
||||
for(;;)
|
||||
{
|
||||
mainmenu();
|
||||
a=getch();
|
||||
if(a==13) break;
|
||||
if(a==27)
|
||||
{
|
||||
m_exit=1;
|
||||
break;
|
||||
}
|
||||
if(!a) a=1000+getch();
|
||||
switch(a)
|
||||
{
|
||||
case 1072 : menuy--; break;
|
||||
case 1080 : menuy++; break;
|
||||
case 1075 : (*menux)--; break;
|
||||
case 1077 : (*menux)++; break;
|
||||
}
|
||||
}
|
||||
|
||||
gotoxy(0,0);
|
||||
for(y=0;y<50;y++) prtt("~0 ");
|
||||
|
||||
if(!m_soundcard)
|
||||
{
|
||||
gotoxy(0,10);
|
||||
prtt( "~4 You have selected the ~5no sound~4 option. Please note that even\n"
|
||||
" though the music is not playing, the demo is still syncronized to\n"
|
||||
" it. This means that there are delays (like in the beginning) that\n"
|
||||
" feel unnecessarily long. There is no way to skip parts while you\n"
|
||||
" watch the demo, so you can only wait.\n");
|
||||
prtt("~5\n Press any key to continue...\n");
|
||||
getch();
|
||||
gotoxy(0,0);
|
||||
for(y=0;y<50;y++) prtt("~0 ");
|
||||
}
|
||||
}
|
||||
|
||||
int menucolorize(int index,int *x)
|
||||
{
|
||||
int a;
|
||||
static char *v;
|
||||
if(menuy==index-1)
|
||||
{
|
||||
v[4*2]=175;
|
||||
//v[4*2+1]=7;
|
||||
v[80*2-4*2]=174;
|
||||
//v[80*2-4*2+1]=7;
|
||||
}
|
||||
if(menuy==index)
|
||||
{
|
||||
menux=x;
|
||||
col[1]|=0x10;
|
||||
col[2]|=0x10;
|
||||
}
|
||||
else
|
||||
{
|
||||
col[1]&=~0x10;
|
||||
col[2]&=~0x10;
|
||||
}
|
||||
v=vram+vramp;
|
||||
}
|
||||
|
||||
int mainmenu(void)
|
||||
{
|
||||
int a;
|
||||
|
||||
if(menuy<1) menuy=1;
|
||||
if(menuy>3) menuy=3;
|
||||
|
||||
if(m_detail<0) m_detail=1;
|
||||
if(m_detail>1) m_detail=0;
|
||||
if(m_soundcard<0) m_soundcard=3;
|
||||
if(m_soundcard>3) m_soundcard=0;
|
||||
if(m_soundquality<0) m_soundquality=2;
|
||||
if(m_soundquality>2) m_soundquality=0;
|
||||
if(m_looping<0) m_looping=1;
|
||||
if(m_looping>1) m_looping=0;
|
||||
gotoxy(0,2);
|
||||
|
||||
/*
|
||||
menucolorize(0,&m_detail);
|
||||
switch(m_detail)
|
||||
{
|
||||
case 0: prtf(
|
||||
"~0 ~1 Detail:~2 Full (486 or higher) ~0 \n"
|
||||
); break;
|
||||
case 1: prtf(
|
||||
"~0 ~1 Detail:~2 Reduced (386) ~0 \n"
|
||||
); break;
|
||||
}
|
||||
*/
|
||||
col[1]&=~0x10; col[2]&=~0x10; prtf(
|
||||
"~0 ~3 This demonstration has been designed for fast machines, which ~0 \n"
|
||||
"~0 ~3 in this case means 33Mhz 486 computers. The demo also runs on ~0 \n"
|
||||
"~0 ~3 slower 386 computers, but some parts will naturally slow down. ~0 \n"
|
||||
"~0 ~3 In case you encounter difficulties running this demo, try ~0 \n"
|
||||
"~0 ~3 rebooting you computer with a clean boot (no TSRs etc.) ~0 \n"
|
||||
"\n");
|
||||
menucolorize(1,&m_soundcard);
|
||||
switch(m_soundcard)
|
||||
{
|
||||
case 0: prtf(
|
||||
"~0 ~1 Soundcard:~2 No sound ~0 \n"
|
||||
); break;
|
||||
case 1: prtf(
|
||||
"~0 ~1 Soundcard:~2 SoundBlaster (mono) ~0 \n"
|
||||
); break;
|
||||
case 2: prtf(
|
||||
"~0 ~1 Soundcard:~2 SoundBlaster Pro (stereo) ~0 \n"
|
||||
); break;
|
||||
case 3: prtf(
|
||||
"~0 ~1 Soundcard:~2 Gravis Ultrasound, 512K of memory (stereo) ~0 \n"
|
||||
); break;
|
||||
}
|
||||
col[1]&=~0x10; col[2]&=~0x10; prtf(
|
||||
"~0 ~3 With Gravis Ultrasound or no music, the demo requires only ~0 \n"
|
||||
"~0 ~3 570,000 bytes of conventional memory. With SoundBlaster, an ~0 \n"
|
||||
"~0 ~3 additional 1MB of expanded memory (EMS) is required. ~0 \n"
|
||||
"\n");
|
||||
menucolorize(2,&m_soundquality);
|
||||
switch(m_soundquality)
|
||||
{
|
||||
case 0: prtf(
|
||||
"~0 ~1 Sound quality:~2 Poor ~0 \n"
|
||||
); break;
|
||||
case 1: prtf(
|
||||
"~0 ~1 Sound quality:~2 Standard ~0 \n"
|
||||
); break;
|
||||
case 2: prtf(
|
||||
"~0 ~1 Sound quality:~2 High ~0 \n"
|
||||
); break;
|
||||
}
|
||||
col[1]&=~0x10; col[2]&=~0x10; prtf(
|
||||
"~0 ~3 For SoundBlaster cards, the quality directly effects the mixing ~0 \n"
|
||||
"~0 ~3 rate. For the Gravis Ultrasound, the quality has no effect. If ~0 \n"
|
||||
"~0 ~3 the demo runs too slowly, try decreasing the sound quality. ~0 \n"
|
||||
"\n");
|
||||
menucolorize(3,&m_looping);
|
||||
switch(m_looping)
|
||||
{
|
||||
case 0: prtf(
|
||||
"~0 ~1 Demo looping:~2 Disabled ~0 \n"
|
||||
); break;
|
||||
case 1: prtf(
|
||||
"~0 ~1 Demo looping:~2 Enabled (no end scroller shown) ~0 \n"
|
||||
); break;
|
||||
}
|
||||
col[1]&=~0x10; col[2]&=~0x10; prtf(
|
||||
"~0 ~3 If you wish the demo to run continuously, enable this option. ~0 \n"
|
||||
"\n");
|
||||
menucolorize(4,&m_looping);
|
||||
}
|
||||
Loading…
Reference in a new issue