aboutsummaryrefslogtreecommitdiff
path: root/plugins/dfxvideo/menu.c
diff options
context:
space:
mode:
authorPCSX* teams2010-11-16 14:15:22 +0200
committerGrazvydas Ignotas2010-11-16 14:15:22 +0200
commitef79bbde537d6b9c745a7d86cb9df1d04c35590d (patch)
treeef8d2520dbb9e1e345b41b12c9959f300ca8fd10 /plugins/dfxvideo/menu.c
downloadpcsx_rearmed-ef79bbde537d6b9c745a7d86cb9df1d04c35590d.tar.gz
pcsx_rearmed-ef79bbde537d6b9c745a7d86cb9df1d04c35590d.tar.bz2
pcsx_rearmed-ef79bbde537d6b9c745a7d86cb9df1d04c35590d.zip
pcsxr-1.9.92
Diffstat (limited to 'plugins/dfxvideo/menu.c')
-rw-r--r--plugins/dfxvideo/menu.c167
1 files changed, 167 insertions, 0 deletions
diff --git a/plugins/dfxvideo/menu.c b/plugins/dfxvideo/menu.c
new file mode 100644
index 0000000..33d111d
--- /dev/null
+++ b/plugins/dfxvideo/menu.c
@@ -0,0 +1,167 @@
+/***************************************************************************
+ menu.c - description
+ -------------------
+ begin : Sun Oct 28 2001
+ copyright : (C) 2001 by Pete Bernert
+ email : BlackDove@addcom.de
+ ***************************************************************************/
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. See also the license.txt file for *
+ * additional informations. *
+ * *
+ ***************************************************************************/
+
+#define _IN_MENU
+
+#include "externals.h"
+#include "draw.h"
+#include "menu.h"
+#include "gpu.h"
+
+unsigned long dwCoreFlags = 0;
+
+// create lists/stuff for fonts (actually there are no more lists, but I am too lazy to change the func names ;)
+void InitMenu(void)
+{
+}
+
+// kill existing lists/fonts
+void CloseMenu(void)
+{
+ DestroyPic();
+}
+
+// DISPLAY FPS/MENU TEXT
+
+#include <time.h>
+extern time_t tStart;
+
+int iMPos=0; // menu arrow pos
+
+void DisplayText(void) // DISPLAY TEXT
+{
+}
+
+// Build Menu buffer (== Dispbuffer without FPS)...
+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
+ }
+
+
+ if(lSelectedSlot) szMenuBuf[26] = '0'+(char)lSelectedSlot;
+
+ szMenuBuf[(iMPos+1)*5]='<'; // set arrow
+
+}
+
+// Some menu action...
+void SwitchDispMenu(int iStep) // SWITCH DISP MENU
+{
+ if(!(ulKeybits&KEY_SHOWFPS)) return; // tststs
+
+ switch(iMPos)
+ {
+ case 0: // frame limit
+ {
+ int iType=0;
+ bInitCap = TRUE;
+
+ if(UseFrameLimit) iType=iFrameLimit;
+ iType+=iStep;
+ if(iType<0) iType=2;
+ if(iType>2) iType=0;
+ if(iType==0) UseFrameLimit=0;
+ else
+ {
+ UseFrameLimit=1;
+ iFrameLimit=iType;
+ SetAutoFrameCap();
+ }
+ } break;
+
+ case 1: // frame skip
+ bInitCap = TRUE;
+ if(iStep>0)
+ {
+ if(!UseFrameSkip) {UseFrameSkip=1;iFastFwd = 0;}
+ else
+ {
+ if(!iFastFwd) iFastFwd=1;
+ else {UseFrameSkip=0;iFastFwd = 0;}
+ }
+ }
+ else
+ {
+ if(!UseFrameSkip) {UseFrameSkip=1;iFastFwd = 1;}
+ else
+ {
+ if(iFastFwd) iFastFwd=0;
+ else {UseFrameSkip=0;iFastFwd = 0;}
+ }
+ }
+ bSkipNextFrame=FALSE;
+ break;
+
+ case 2: // dithering
+ iUseDither+=iStep;
+ if(iUseDither<0) iUseDither=2;
+ if(iUseDither>2) iUseDither=0;
+ break;
+
+ case 3: // special fixes
+ if(iUseFixes) {iUseFixes=0;dwActFixes=0;}
+ else {iUseFixes=1;dwActFixes=dwCfgFixes;}
+ SetFixes();
+ if(iFrameLimit==2) SetAutoFrameCap();
+ break;
+ }
+
+ BuildDispMenu(0); // update info
+}