📄 menues.c
字号:
gametext(160,90,"SELECT A SAVE SPOT BEFORE",0,2+8+16);
gametext(160,90+9,"YOU QUICK RESTORE.",0,2+8+16);
x = probe(186,124,0,0);
if(x >= -1)
{
if(ud.multimode < 2 && ud.recstat != 2)
{
ready2send = 1;
totalclock = ototalclock;
}
ps[myconnectindex].gm &= ~MODE_MENU;
}
break;
case 20000:
x = probe(326,190,0,0);
gametext(160,50-8,"YOU ARE PLAYING THE SHAREWARE",0,2+8+16);
gametext(160,59-8,"VERSION OF DUKE NUKEM 3D. WHILE",0,2+8+16);
gametext(160,68-8,"THIS VERSION IS REALLY COOL, YOU",0,2+8+16);
gametext(160,77-8,"ARE MISSING OVER 75% OF THE TOTAL",0,2+8+16);
gametext(160,86-8,"GAME, ALONG WITH OTHER GREAT EXTRAS",0,2+8+16);
gametext(160,95-8,"AND GAMES, WHICH YOU'LL GET WHEN",0,2+8+16);
gametext(160,104-8,"YOU ORDER THE COMPLETE VERSION AND",0,2+8+16);
gametext(160,113-8,"GET THE FINAL TWO EPISODES.",0,2+8+16);
gametext(160,113+8,"PLEASE READ THE 'HOW TO ORDER' ITEM",0,2+8+16);
gametext(160,122+8,"ON THE MAIN MENU IF YOU WISH TO",0,2+8+16);
gametext(160,131+8,"UPGRADE TO THE FULL REGISTERED",0,2+8+16);
gametext(160,140+8,"VERSION OF DUKE NUKEM 3D.",0,2+8+16);
gametext(160,149+16,"PRESS ANY KEY...",0,2+8+16);
if( x >= -1 ) cmenu(100);
break;
case 20001:
x = probe(188,80+32+32,0,0);
gametext(160,86-8,"You must be in Windows 95 to",0,2+8+16);
gametext(160,86,"play on TEN",0,2+8+16);
gametext(160,86+32,"PRESS ANY KEY...",0,2+8+16);
if(x >= -1) cmenu(0);
break;
case 20002:
x = probe(188,80+32+32+32,0,0);
gametext(160,86-8,"MISSING FILE: TENGAME.INI. PLEASE",0,2+8+16);
gametext(160,86,"CONNECT TO TEN BY LAUNCHING THE",0,2+8+16);
gametext(160,86+8,"CONNECT TO TEN SHORTCUT OR CONTACT",0,2+8+16);
gametext(160,86+8+8,"CUSTOMER SUPPORT AT 1-800-8040-TEN.",0,2+8+16);
gametext(160,86+8+8+32,"PRESS ANY KEY...",0,2+8+16);
if(x >= -1) cmenu(0);
break;
case 20003:
x = probe(188,80+32+32,0,0);
gametext(160,86-8,"BAD TEN INSTALL: PLEASE RE-INSTALL",0,2+8+16);
gametext(160,86,"BAD TEN INSTALL: PLEASE RE-INSTALL TEN",0,2+8+16);
gametext(160,86+32,"PRESS ANY KEY...",0,2+8+16);
if(x >= -1) cmenu(0);
break;
case 20005:
x = probe(188,80+32+32,0,0);
gametext(160,86-8,"GET THE LATEST TEN SOFTWARE AT",0,2+8+16);
gametext(160,86,"HTTP://WWW.TEN.NET",0,2+8+16);
gametext(160,86+32,"PRESS ANY KEY...",0,2+8+16);
if(x >= -1) cmenu(0);
break;
case 15001:
case 15000:
gametext(160,90,"LOAD last game:",0,2+8+16);
sprintf(tempbuf,"\"%s\"",ud.savegame[lastsavedpos]);
gametext(160,99,tempbuf,0,2+8+16);
gametext(160,99+9,"(Y/N)",0,2+8+16);
if( KB_KeyPressed(sc_Escape) || KB_KeyPressed(sc_N) || RMB)
{
if(sprite[ps[myconnectindex].i].extra <= 0)
{
enterlevel(MODE_GAME);
return;
}
KB_ClearKeyDown(sc_N);
KB_ClearKeyDown(sc_Escape);
ps[myconnectindex].gm &= ~MODE_MENU;
if(ud.multimode < 2 && ud.recstat != 2)
{
ready2send = 1;
totalclock = ototalclock;
}
}
if( KB_KeyPressed(sc_Space) || KB_KeyPressed(sc_Enter) || KB_KeyPressed(sc_kpad_Enter) || KB_KeyPressed(sc_Y) || LMB )
{
KB_FlushKeyboardQueue();
FX_StopAllSounds();
if(ud.multimode > 1)
{
loadplayer(-1-lastsavedpos);
ps[myconnectindex].gm = MODE_GAME;
}
else
{
c = loadplayer(lastsavedpos);
if(c == 0)
ps[myconnectindex].gm = MODE_GAME;
}
}
probe(186,124+9,0,0);
break;
case 10000:
case 10001:
c = 60;
rotatesprite(160<<16,19<<16,65536L,0,MENUBAR,16,0,10,0,0,xdim-1,ydim-1);
menutext(160,24,0,0,"ADULT MODE");
x = probe(60,50+16,16,2);
if(x == -1) { cmenu(200); break; }
menutext(c,50+16,SHX(-2),PHX(-2),"ADULT MODE");
menutext(c,50+16+16,SHX(-3),PHX(-3),"ENTER PASSWORD");
if(ud.lockout) menutext(c+160+40,50+16,0,0,"OFF");
else menutext(c+160+40,50+16,0,0,"ON");
if(current_menu == 10001)
{
gametext(160,50+16+16+16+16-12,"ENTER PASSWORD",0,2+8+16);
x = strget((320>>1),50+16+16+16+16,buf,19, 998);
if( x )
{
if(ud.pwlockout[0] == 0 || ud.lockout == 0 )
strcpy(&ud.pwlockout[0],buf);
else if( strcmp(buf,&ud.pwlockout[0]) == 0 )
{
ud.lockout = 0;
buf[0] = 0;
for(x=0;x<numanimwalls;x++)
if( wall[animwall[x].wallnum].picnum != W_SCREENBREAK &&
wall[animwall[x].wallnum].picnum != W_SCREENBREAK+1 &&
wall[animwall[x].wallnum].picnum != W_SCREENBREAK+2 )
if( wall[animwall[x].wallnum].extra >= 0 )
wall[animwall[x].wallnum].picnum = wall[animwall[x].wallnum].extra;
}
current_menu = 10000;
KB_ClearKeyDown(sc_Enter);
KB_ClearKeyDown(sc_kpad_Enter);
KB_FlushKeyboardQueue();
}
}
else
{
if(x == 0)
{
if( ud.lockout == 1 )
{
if(ud.pwlockout[0] == 0)
{
ud.lockout = 0;
for(x=0;x<numanimwalls;x++)
if( wall[animwall[x].wallnum].picnum != W_SCREENBREAK &&
wall[animwall[x].wallnum].picnum != W_SCREENBREAK+1 &&
wall[animwall[x].wallnum].picnum != W_SCREENBREAK+2 )
if( wall[animwall[x].wallnum].extra >= 0 )
wall[animwall[x].wallnum].picnum = wall[animwall[x].wallnum].extra;
}
else
{
buf[0] = 0;
current_menu = 10001;
inputloc = 0;
KB_FlushKeyboardQueue();
}
}
else
{
ud.lockout = 1;
for(x=0;x<numanimwalls;x++)
switch(wall[animwall[x].wallnum].picnum)
{
case FEMPIC1:
wall[animwall[x].wallnum].picnum = BLANKSCREEN;
break;
case FEMPIC2:
case FEMPIC3:
wall[animwall[x].wallnum].picnum = SCREENBREAK6;
break;
}
}
}
else if(x == 1)
{
current_menu = 10001;
inputloc = 0;
KB_FlushKeyboardQueue();
}
}
break;
case 1000:
case 1001:
case 1002:
case 1003:
case 1004:
case 1005:
case 1006:
case 1007:
case 1008:
case 1009:
rotatesprite(160<<16,200<<15,65536L,0,MENUSCREEN,16,0,10+64,0,0,xdim-1,ydim-1);
rotatesprite(160<<16,19<<16,65536L,0,MENUBAR,16,0,10,0,0,xdim-1,ydim-1);
menutext(160,24,0,0,"LOAD GAME");
rotatesprite(101<<16,97<<16,65536,512,MAXTILES-3,-32,0,4+10+64,0,0,xdim-1,ydim-1);
dispnames();
sprintf(tempbuf,"PLAYERS: %-2d ",numplr);
gametext(160,158,tempbuf,0,2+8+16);
sprintf(tempbuf,"EPISODE: %-2d / LEVEL: %-2d / SKILL: %-2d",1+volnum,1+levnum,plrskl);
gametext(160,170,tempbuf,0,2+8+16);
gametext(160,90,"LOAD game:",0,2+8+16);
sprintf(tempbuf,"\"%s\"",ud.savegame[current_menu-1000]);
gametext(160,99,tempbuf,0,2+8+16);
gametext(160,99+9,"(Y/N)",0,2+8+16);
if( KB_KeyPressed(sc_Space) || KB_KeyPressed(sc_Enter) || KB_KeyPressed(sc_kpad_Enter) || KB_KeyPressed(sc_Y) || LMB )
{
lastsavedpos = current_menu-1000;
KB_FlushKeyboardQueue();
if(ud.multimode < 2 && ud.recstat != 2)
{
ready2send = 1;
totalclock = ototalclock;
}
if(ud.multimode > 1)
{
if( ps[myconnectindex].gm&MODE_GAME )
{
loadplayer(-1-lastsavedpos);
ps[myconnectindex].gm = MODE_GAME;
}
else
{
tempbuf[0] = 126;
tempbuf[1] = lastsavedpos;
for(x=connecthead;x>=0;x=connectpoint2[x])
if(x != myconnectindex)
sendpacket(x,tempbuf,2);
getpackets();
loadplayer(lastsavedpos);
multiflag = 0;
}
}
else
{
c = loadplayer(lastsavedpos);
if(c == 0)
ps[myconnectindex].gm = MODE_GAME;
}
break;
}
if( KB_KeyPressed(sc_N) || KB_KeyPressed(sc_Escape) || RMB)
{
KB_ClearKeyDown(sc_N);
KB_ClearKeyDown(sc_Escape);
sound(EXITMENUSOUND);
if(ps[myconnectindex].gm&MODE_DEMO) cmenu(300);
else
{
ps[myconnectindex].gm &= ~MODE_MENU;
if(ud.multimode < 2 && ud.recstat != 2)
{
ready2send = 1;
totalclock = ototalclock;
}
}
}
probe(186,124+9,0,0);
break;
case 1500:
if( KB_KeyPressed(sc_Space) || KB_KeyPressed(sc_Enter) || KB_KeyPressed(sc_kpad_Enter) || KB_KeyPressed(sc_Y) || LMB )
{
KB_FlushKeyboardQueue();
cmenu(100);
}
if( KB_KeyPressed(sc_N) || KB_KeyPressed(sc_Escape) || RMB)
{
KB_ClearKeyDown(sc_N);
KB_ClearKeyDown(sc_Escape);
if(ud.multimode < 2 && ud.recstat != 2)
{
ready2send = 1;
totalclock = ototalclock;
}
ps[myconnectindex].gm &= ~MODE_MENU;
sound(EXITMENUSOUND);
break;
}
probe(186,124,0,0);
gametext(160,90,"ABORT this game?",0,2+8+16);
gametext(160,90+9,"(Y/N)",0,2+8+16);
break;
case 2000:
case 2001:
case 2002:
case 2003:
case 2004:
case 2005:
case 2006:
case 2007:
case 2008:
case 2009:
rotatesprite(160<<16,200<<15,65536L,0,MENUSCREEN,16,0,10+64,0,0,xdim-1,ydim-1);
rotatesprite(160<<16,19<<16,65536L,0,MENUBAR,16,0,10,0,0,xdim-1,ydim-1);
menutext(160,24,0,0,"SAVE GAME");
rotatesprite(101<<16,97<<16,65536L,512,MAXTILES-3,-32,0,4+10+64,0,0,xdim-1,ydim-1);
sprintf(tempbuf,"PLAYERS: %-2d ",ud.multimode);
gametext(160,158,tempbuf,0,2+8+16);
sprintf(tempbuf,"EPISODE: %-2d / LEVEL: %-2d / SKILL: %-2d",1+ud.volume_number,1+ud.level_number,ud.player_skill);
gametext(160,170,tempbuf,0,2+8+16);
dispnames();
gametext(160,90,"OVERWRITE previous SAVED game?",0,2+8+16);
gametext(160,90+9,"(Y/N)",0,2+8+16);
if( KB_KeyPressed(sc_Space) || KB_KeyPressed(sc_Enter) || KB_KeyPressed(sc_kpad_Enter) || KB_KeyPressed(sc_Y) || LMB )
{
KB_FlushKeyboardQueue();
inputloc = strlen(&ud.savegame[current_menu-2000][0]);
cmenu(current_menu-2000+360);
KB_FlushKeyboardQueue();
break;
}
if( KB_KeyPressed(sc_N) || KB_KeyPressed(sc_Escape) || RMB)
{
KB_ClearKeyDown(sc_N);
KB_ClearKeyDown(sc_Escape);
cmenu(351);
sound(EXITMENUSOUND);
}
probe(186,124,0,0);
break;
case 990:
case 991:
case 992:
case 993:
case 994:
case 995:
case 996:
case 997:
// rotatesprite(c<<16,200<<15,65536L,0,MENUSCREEN,16,0,10+64,0,0,xdim-1,ydim-1);
// rotatesprite(c<<16,19<<16,65536L,0,MENUBAR,16,0,10,0,0,xdim-1,ydim-1);
// menutext(c,24,0,0,"CREDITS");
if(KB_KeyPressed(sc_Escape)) { cmenu(0); break; }
if( KB_KeyPressed( sc_LeftArrow ) ||
KB_KeyPressed( sc_kpad_4 ) ||
KB_KeyPressed( sc_UpArrow ) ||
KB_KeyPressed( sc_PgUp ) ||
KB_KeyPressed( sc_kpad_8 ) )
{
KB_ClearKeyDown(sc_LeftArrow);
KB_ClearKeyDown(sc_kpad_4);
KB_ClearKeyDown(sc_UpArrow);
KB_ClearKeyDown(sc_PgUp);
KB_ClearKeyDown(sc_kpad_8);
sound(KICK_HIT);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -