📄 menues.c
字号:
{
if(*(t+i) == ' ')
{
centre += 5;
i++;
continue;
}
ac = 0;
if(*(t+i) >= '0' && *(t+i) <= '9')
ac = *(t+i) - '0' + BIGALPHANUM-10;
else if(*(t+i) >= 'a' && *(t+i) <= 'z')
ac = toupper(*(t+i)) - 'A' + BIGALPHANUM;
else if(*(t+i) >= 'A' && *(t+i) <= 'Z')
ac = *(t+i) - 'A' + BIGALPHANUM;
else switch(*(t+i))
{
case '-':
ac = BIGALPHANUM-11;
break;
case '.':
ac = BIGPERIOD;
break;
case '\'':
ac = BIGAPPOS;
break;
case ',':
ac = BIGCOMMA;
break;
case '!':
ac = BIGX;
break;
case '?':
ac = BIGQ;
break;
case ';':
ac = BIGSEMI;
break;
case ':':
ac = BIGSEMI;
break;
default:
centre += 5;
i++;
continue;
}
centre += tilesizx[ac]-1;
i++;
}
}
if(centre)
x = (320-centre-10)>>1;
while(*t)
{
if(*t == ' ') {x+=5;t++;continue;}
ac = 0;
if(*t >= '0' && *t <= '9')
ac = *t - '0' + BIGALPHANUM-10;
else if(*t >= 'a' && *t <= 'z')
ac = toupper(*t) - 'A' + BIGALPHANUM;
else if(*t >= 'A' && *t <= 'Z')
ac = *t - 'A' + BIGALPHANUM;
else switch(*t)
{
case '-':
ac = BIGALPHANUM-11;
break;
case '.':
ac = BIGPERIOD;
break;
case ',':
ac = BIGCOMMA;
break;
case '!':
ac = BIGX;
break;
case '\'':
ac = BIGAPPOS;
break;
case '?':
ac = BIGQ;
break;
case ';':
ac = BIGSEMI;
break;
case ':':
ac = BIGCOLIN;
break;
default:
x += 5;
t++;
continue;
}
rotatesprite(x<<16,y<<16,65536L,0,ac,s,p,10+16,0,0,xdim-1,ydim-1);
x += tilesizx[ac];
t++;
}
return (x);
}
int menutextc(int x,int y,short s,short p,char *t)
{
short i, ac, centre;
s += 8;
y -= 12;
i = centre = 0;
// if( x == (320>>1) )
{
while( *(t+i) )
{
if(*(t+i) == ' ')
{
centre += 5;
i++;
continue;
}
ac = 0;
if(*(t+i) >= '0' && *(t+i) <= '9')
ac = *(t+i) - '0' + BIGALPHANUM+26+26;
if(*(t+i) >= 'a' && *(t+i) <= 'z')
ac = *(t+i) - 'a' + BIGALPHANUM+26;
if(*(t+i) >= 'A' && *(t+i) <= 'Z')
ac = *(t+i) - 'A' + BIGALPHANUM;
else switch(*t)
{
case '-':
ac = BIGALPHANUM-11;
break;
case '.':
ac = BIGPERIOD;
break;
case ',':
ac = BIGCOMMA;
break;
case '!':
ac = BIGX;
break;
case '?':
ac = BIGQ;
break;
case ';':
ac = BIGSEMI;
break;
case ':':
ac = BIGCOLIN;
break;
}
centre += tilesizx[ac]-1;
i++;
}
}
x -= centre>>1;
while(*t)
{
if(*t == ' ') {x+=5;t++;continue;}
ac = 0;
if(*t >= '0' && *t <= '9')
ac = *t - '0' + BIGALPHANUM+26+26;
if(*t >= 'a' && *t <= 'z')
ac = *t - 'a' + BIGALPHANUM+26;
if(*t >= 'A' && *t <= 'Z')
ac = *t - 'A' + BIGALPHANUM;
switch(*t)
{
case '-':
ac = BIGALPHANUM-11;
break;
case '.':
ac = BIGPERIOD;
break;
case ',':
ac = BIGCOMMA;
break;
case '!':
ac = BIGX;
break;
case '?':
ac = BIGQ;
break;
case ';':
ac = BIGSEMI;
break;
case ':':
ac = BIGCOLIN;
break;
}
rotatesprite(x<<16,y<<16,65536L,0,ac,s,p,10+16,0,0,xdim-1,ydim-1);
x += tilesizx[ac];
t++;
}
return (x);
}
void bar(int x,int y,short *p,short dainc,char damodify,short s, short pa)
{
short xloc;
char rev;
if(dainc < 0) { dainc = -dainc; rev = 1; }
else rev = 0;
y-=2;
if(damodify)
{
if(rev == 0)
{
if( KB_KeyPressed( sc_LeftArrow ) || KB_KeyPressed( sc_kpad_4 ) || ((buttonstat&1) && minfo.dyaw < -256 ) ) // && onbar) )
{
KB_ClearKeyDown( sc_LeftArrow );
KB_ClearKeyDown( sc_kpad_4 );
*p -= dainc;
if(*p < 0)
*p = 0;
sound(KICK_HIT);
}
if( KB_KeyPressed( sc_RightArrow ) || KB_KeyPressed( sc_kpad_6 ) || ((buttonstat&1) && minfo.dyaw > 256 ) )//&& onbar) )
{
KB_ClearKeyDown( sc_RightArrow );
KB_ClearKeyDown( sc_kpad_6 );
*p += dainc;
if(*p > 63)
*p = 63;
sound(KICK_HIT);
}
}
else
{
if( KB_KeyPressed( sc_RightArrow ) || KB_KeyPressed( sc_kpad_6 ) || ((buttonstat&1) && minfo.dyaw > 256 ))//&& onbar ))
{
KB_ClearKeyDown( sc_RightArrow );
KB_ClearKeyDown( sc_kpad_6 );
*p -= dainc;
if(*p < 0)
*p = 0;
sound(KICK_HIT);
}
if( KB_KeyPressed( sc_LeftArrow ) || KB_KeyPressed( sc_kpad_4 ) || ((buttonstat&1) && minfo.dyaw < -256 ))// && onbar) )
{
KB_ClearKeyDown( sc_LeftArrow );
KB_ClearKeyDown( sc_kpad_4 );
*p += dainc;
if(*p > 64)
*p = 64;
sound(KICK_HIT);
}
}
}
xloc = *p;
rotatesprite( (x+22)<<16,(y-3)<<16,65536L,0,SLIDEBAR,s,pa,10,0,0,xdim-1,ydim-1);
if(rev == 0)
rotatesprite( (x+xloc+1)<<16,(y+1)<<16,65536L,0,SLIDEBAR+1,s,pa,10,0,0,xdim-1,ydim-1);
else
rotatesprite( (x+(65-xloc) )<<16,(y+1)<<16,65536L,0,SLIDEBAR+1,s,pa,10,0,0,xdim-1,ydim-1);
}
#define SHX(X) 0
// ((x==X)*(-sh))
#define PHX(X) 0
// ((x==X)?1:2)
#define MWIN(X) rotatesprite( 320<<15,200<<15,X,0,MENUSCREEN,-16,0,10+64,0,0,xdim-1,ydim-1)
#define MWINXY(X,OX,OY) rotatesprite( ( 320+(OX) )<<15, ( 200+(OY) )<<15,X,0,MENUSCREEN,-16,0,10+64,0,0,xdim-1,ydim-1)
int32 volnum,levnum,plrskl,numplr;
short lastsavedpos = -1;
void dispnames(void)
{
short x, c = 160;
c += 64;
for(x = 0;x <= 108;x += 12)
rotatesprite((c+91-64)<<16,(x+56)<<16,65536L,0,TEXTBOX,24,0,10,0,0,xdim-1,ydim-1);
rotatesprite(22<<16,97<<16,65536L,0,WINDOWBORDER2,24,0,10,0,0,xdim-1,ydim-1);
rotatesprite(180<<16,97<<16,65536L,1024,WINDOWBORDER2,24,0,10,0,0,xdim-1,ydim-1);
rotatesprite(99<<16,50<<16,65536L,512,WINDOWBORDER1,24,0,10,0,0,xdim-1,ydim-1);
rotatesprite(103<<16,144<<16,65536L,1024+512,WINDOWBORDER1,24,0,10,0,0,xdim-1,ydim-1);
minitext(c,48,ud.savegame[0],2,10+16);
minitext(c,48+12,ud.savegame[1],2,10+16);
minitext(c,48+12+12,ud.savegame[2],2,10+16);
minitext(c,48+12+12+12,ud.savegame[3],2,10+16);
minitext(c,48+12+12+12+12,ud.savegame[4],2,10+16);
minitext(c,48+12+12+12+12+12,ud.savegame[5],2,10+16);
minitext(c,48+12+12+12+12+12+12,ud.savegame[6],2,10+16);
minitext(c,48+12+12+12+12+12+12+12,ud.savegame[7],2,10+16);
minitext(c,48+12+12+12+12+12+12+12+12,ud.savegame[8],2,10+16);
minitext(c,48+12+12+12+12+12+12+12+12+12,ud.savegame[9],2,10+16);
}
getfilenames(char kind[6])
{
short type;
struct find_t fileinfo;
if (strcmp(kind,"SUBD") == 0)
{
strcpy(kind,"*.*");
if (_dos_findfirst(kind,_A_SUBDIR,&fileinfo) != 0)
return(-1);
type = 1;
}
else
{
if (_dos_findfirst(kind,_A_NORMAL,&fileinfo) != 0)
return(-1);
type = 0;
}
do
{
if ((type == 0) || ((fileinfo.attrib&16) > 0))
if ((fileinfo.name[0] != '.') || (fileinfo.name[1] != 0))
{
strcpy(menuname[menunamecnt],fileinfo.name);
menuname[menunamecnt][16] = type;
menunamecnt++;
}
}
while (_dos_findnext(&fileinfo) == 0);
return(0);
}
void sortfilenames()
{
char sortbuffer[17];
long i, j, k;
for(i=1;i<menunamecnt;i++)
for(j=0;j<i;j++)
{
k = 0;
while ((menuname[i][k] == menuname[j][k]) && (menuname[i][k] != 0) && (menuname[j][k] != 0))
k++;
if (menuname[i][k] < menuname[j][k])
{
memcpy(&sortbuffer[0],&menuname[i][0],sizeof(menuname[0]));
memcpy(&menuname[i][0],&menuname[j][0],sizeof(menuname[0]));
memcpy(&menuname[j][0],&sortbuffer[0],sizeof(menuname[0]));
}
}
}
long quittimer = 0;
void menus(void)
{
short c,x;
volatile long l;
int tenerr;
getpackets();
if(ControllerType == 1 && CONTROL_MousePresent)
{
if(buttonstat != 0 && !onbar)
{
x = MOUSE_GetButtons()<<3;
if( x ) buttonstat = x<<3;
else buttonstat = 0;
}
else
buttonstat = MOUSE_GetButtons();
}
else buttonstat = 0;
if( (ps[myconnectindex].gm&MODE_MENU) == 0 )
{
walock[MAXTILES-3] = 1;
return;
}
ps[myconnectindex].gm &= (0xff-MODE_TYPE);
ps[myconnectindex].fta = 0;
x = 0;
sh = 4-(sintable[(totalclock<<4)&2047]>>11);
if(!(current_menu >= 1000 && current_menu <= 2999 && current_menu >= 300 && current_menu <= 369))
vscrn();
switch(current_menu)
{
case 25000:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -