示例#1
0
void BuildDispMenu(int iInc)
{
	unsigned char nStatusSymbols[3] = {0x3D, 0x34, 0x3B};
	int j = 0;
	int i = 0;
	if (!(ulKeybits&KEY_SHOWFPS)) return;                 // mmm, cheater ;)

	iMPos+=iInc;                                          // up or down
	if (iMPos<0) iMPos=3;                                 // wrap around
	if (iMPos>3) iMPos=0;

	strcpy(szMenuBuf,"   FL   FS   DI   GF        ");     // main menu items

	if (UseFrameLimit)                                    // set marks
	{
		if (iFrameLimit==1) szMenuBuf[2]  = '+';
		else               szMenuBuf[2]  = '*';
	}
	if (iFastFwd)       szMenuBuf[7]  = '~';
	else
		if (UseFrameSkip)   szMenuBuf[7]  = '*';

	if (iUseDither)                                       // set marks
	{
		if (iUseDither==1) szMenuBuf[12]  = '+';
		else              szMenuBuf[12]  = '*';
	}

	if (dwActFixes)     szMenuBuf[17] = '*';

	sprintf( cCurrentLag,"%d", currentLag);
	if (modeFlags&MODE_FLAG_REPLAY)
		sprintf( cCurrentFrame,"%d / %d", currentFrame,totalFrames);
	else
		sprintf( cCurrentFrame,"%d", currentFrame);

	memset(cCurrentMode, 0, sizeof(cCurrentMode));
	for (i = 0; i < 3; i++)
	{
		if (modeFlags & (1 << (i+1)))
		{
			cCurrentMode[j] = nStatusSymbols[i];
			j++;
		}
	}

	cCurrentInput[0] = currentInput&0x80?' ':'<';
	cCurrentInput[1] = currentInput&0x10?' ':'^';
	cCurrentInput[2] = currentInput&0x20?' ':'>';
	cCurrentInput[3] = currentInput&0x40?' ':'v';
	cCurrentInput[4] = currentInput&0x8?' ':'S';
	cCurrentInput[5] = currentInput&0x1?' ':'s';
	cCurrentInput[6] = currentInput&0x8000?' ':19;
	cCurrentInput[7] = currentInput&0x4000?' ':'X';
	cCurrentInput[8] = currentInput&0x2000?' ':'O';
	cCurrentInput[9] = currentInput&0x1000?' ':'T';
	cCurrentInput[10] = currentInput&0x400?' ':'L'; //l1
	cCurrentInput[11] = currentInput&0x400?' ':'1'; //l1
	cCurrentInput[12] = currentInput&0x800?' ':'R'; //r1
	cCurrentInput[13] = currentInput&0x800?' ':'1'; //r1
	cCurrentInput[14] = currentInput&0x100?' ':'L'; //l2
	cCurrentInput[15] = currentInput&0x100?' ':'2'; //l2
	cCurrentInput[16] = currentInput&0x200?' ':'R'; //r2
	cCurrentInput[17] = currentInput&0x200?' ':'2'; //r2
	cCurrentInput[18] = currentInput&0x800000?' ':'<';
	cCurrentInput[19] = currentInput&0x100000?' ':'^';
	cCurrentInput[20] = currentInput&0x200000?' ':'>';
	cCurrentInput[21] = currentInput&0x400000?' ':'v';
	cCurrentInput[22] = currentInput&0x80000?' ':'S';
	cCurrentInput[23] = currentInput&0x10000?' ':'s';
	cCurrentInput[24] = currentInput&0x80000000?' ':19;
	cCurrentInput[25] = currentInput&0x40000000?' ':'X';
	cCurrentInput[26] = currentInput&0x20000000?' ':'O';
	cCurrentInput[27] = currentInput&0x10000000?' ':'T';
	cCurrentInput[28] = currentInput&0x4000000?' ':'L'; //l1
	cCurrentInput[29] = currentInput&0x4000000?' ':'1'; //l1
	cCurrentInput[30] = currentInput&0x8000000?' ':'R'; //r1
	cCurrentInput[31] = currentInput&0x8000000?' ':'1'; //r1
	cCurrentInput[32] = currentInput&0x1000000?' ':'L'; //l2
	cCurrentInput[33] = currentInput&0x1000000?' ':'2'; //l2
	cCurrentInput[34] = currentInput&0x2000000?' ':'R'; //r2
	cCurrentInput[35] = currentInput&0x2000000?' ':'2'; //r2

	if (dwCoreFlags&1)  szMenuBuf[23]  = 'A';
	if (dwCoreFlags&2)  szMenuBuf[23]  = 'M';
	if (dwCoreFlags&0xff00)                               //A/M/G/D
	{
		if ((dwCoreFlags&0x0f00)==0x0000)                   // D
			szMenuBuf[23]  = 'D';
		else
			if ((dwCoreFlags&0x0f00)==0x0100)                   // A
				szMenuBuf[23]  = 'A';
			else
				if ((dwCoreFlags&0x0f00)==0x0200)                   // M
					szMenuBuf[23]  = 'M';
				else
					if ((dwCoreFlags&0x0f00)==0x0300)                   // G
						szMenuBuf[23]  = 'G';

		szMenuBuf[24]='0'+(char)((dwCoreFlags&0xf000)>>12);                         // number
	}

#ifdef _WINDOWS
	if (bVsync_Key)     szMenuBuf[25]  = 'V';
#endif
	if (lSelectedSlot)  szMenuBuf[26]  = '0'+(char)lSelectedSlot;

	szMenuBuf[(iMPos+1)*5]='<';                           // set arrow

#ifdef _WINDOWS
	if (RECORD_RECORDING)
	{
		szMenuBuf[27]  = ' ';
		szMenuBuf[28]  = ' ';
		szMenuBuf[29]  = ' ';
		szMenuBuf[30]  = 'R';
		szMenuBuf[31]  = 'e';
		szMenuBuf[32]  = 'c';
		szMenuBuf[33]  = 0;
	}

	if (DX.DDSScreenPic) ShowTextGpuPic();
#endif
}
示例#2
0
文件: menu.c 项目: GK0013/pcsxgc
void BuildDispMenu(int iInc)
{
 if(!(ulKeybits&KEY_SHOWFPS)) return;                  // mmm, cheater ;)

 iMPos+=iInc;                                          // up or down
 if(iMPos<0) iMPos=3;                                  // wrap around
 if(iMPos>3) iMPos=0;

 strcpy(szMenuBuf,"   FL   FS   DI   GF        ");     // main menu items

 if(UseFrameLimit)                                     // set marks
  {
   if(iFrameLimit==1) szMenuBuf[2]  = '+';
   else               szMenuBuf[2]  = '*';
  }
 if(iFastFwd)       szMenuBuf[7]  = '~';
 else
 if(UseFrameSkip)   szMenuBuf[7]  = '*';

 if(iUseDither)                                        // set marks
  {
   if(iUseDither==1) szMenuBuf[12]  = '+';
   else              szMenuBuf[12]  = '*';
  }

 if(dwActFixes)     szMenuBuf[17] = '*';

 if(dwCoreFlags&1)  szMenuBuf[23]  = 'A';
 if(dwCoreFlags&2)  szMenuBuf[23]  = 'M';

 if(dwCoreFlags&0xff00)                                //A/M/G/D   
  {
   if((dwCoreFlags&0x0f00)==0x0000)                    // D
    szMenuBuf[23]  = 'D';
   else
   if((dwCoreFlags&0x0f00)==0x0100)                    // A
    szMenuBuf[23]  = 'A';
   else
   if((dwCoreFlags&0x0f00)==0x0200)                    // M
    szMenuBuf[23]  = 'M';
   else
   if((dwCoreFlags&0x0f00)==0x0300)                    // G
    szMenuBuf[23]  = 'G';

   szMenuBuf[24]='0'+(char)((dwCoreFlags&0xf000)>>12);                         // number
  }


#ifdef _WINDOWS
 if(bVsync_Key)     szMenuBuf[25]  = 'V';
#endif
 if(lSelectedSlot)  szMenuBuf[26]  = '0'+(char)lSelectedSlot;   

 szMenuBuf[(iMPos+1)*5]='<';                           // set arrow

#ifdef _WINDOWS
 if(RECORD_RECORDING)
  {
   szMenuBuf[27]  = ' ';
   szMenuBuf[28]  = ' ';
   szMenuBuf[29]  = ' ';
   szMenuBuf[30]  = 'R';
   szMenuBuf[31]  = 'e';
   szMenuBuf[32]  = 'c';
   szMenuBuf[33]  = 0;
  }

 if(DX.DDSScreenPic) ShowTextGpuPic();
#endif
}