Skip to content

Commit

Permalink
- added option to use autofire with custom configs, can choose one Vi…
Browse files Browse the repository at this point in the history
…ta button that will have autofire, or set it to 'none' (default) to turn it off
  • Loading branch information
rsn8887 committed Jan 13, 2017
1 parent ccca5c0 commit ae5cb71
Show file tree
Hide file tree
Showing 6 changed files with 156 additions and 39 deletions.
4 changes: 4 additions & 0 deletions Readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,10 @@ Square = Backspace
Triangle = Toggle Shift

CHANGELOG:
1.45

- added option to use autofire with custom configs, can choose one Vita button that will have autofire, or set it to 'none' (default) to turn it off

1.44

- improved contrast of virtual keyboard overlays (thanks to ScHlAuChi for new images)
Expand Down
5 changes: 5 additions & 0 deletions src/gp2x/menu/menu_config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ int mainMenu_joyPort = 2; // Default to port 1 on Vita because mouse is always o
int mainMenu_joyPort = 0; // Both ports
#endif
int mainMenu_autofireRate = 8;
int mainMenu_customAutofireButton = 0;
int mainMenu_showStatus = DEFAULT_STATUSLN;
int mainMenu_mouseMultiplier = DEFAULT_MOUSEMULTIPLIER;
int mainMenu_mouseEmulation = 1;
Expand Down Expand Up @@ -236,6 +237,7 @@ void SetDefaultMenuSettings(int general)
mainMenu_joyPort = 0;
#endif
mainMenu_autofireRate = 8;
mainMenu_customAutofireButton = 0;
mainMenu_showStatus = DEFAULT_STATUSLN;
mainMenu_mouseMultiplier = DEFAULT_MOUSEMULTIPLIER;
mainMenu_mouseEmulation = 1;
Expand Down Expand Up @@ -981,6 +983,8 @@ int saveconfig(int general)
fputs(buffer,f);
snprintf((char*)buffer, 255, "autofire=%d\n",mainMenu_autofire);
fputs(buffer,f);
snprintf((char*)buffer, 255, "customAutofireButton=%d\n",mainMenu_customAutofireButton);
fputs(buffer,f);
snprintf((char*)buffer, 255, "stylusOffset=%d\n",mainMenu_stylusOffset);
fputs(buffer,f);
snprintf((char*)buffer, 255, "tapDelay=%d\n",mainMenu_tapDelay);
Expand Down Expand Up @@ -1369,6 +1373,7 @@ void loadconfig(int general)
mainMenu_joyPort = ((joybuffer >> 4) & 0x0f);
fscanf(f,"autofireRate=%d\n",&mainMenu_autofireRate);
fscanf(f,"autofire=%d\n",&mainMenu_autofire);
fscanf(f,"customAutofireButton=%d\n",&mainMenu_customAutofireButton);
fscanf(f,"stylusOffset=%d\n",&mainMenu_stylusOffset);
fscanf(f,"tapDelay=%d\n",&mainMenu_tapDelay);
fscanf(f,"scanlines=%d\n",&mainMenu_scanlines);
Expand Down
1 change: 1 addition & 0 deletions src/gp2x/menu/menu_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ extern int mainMenu_cpuSpeed;
extern int mainMenu_joyConf;
extern int mainMenu_joyPort;
extern int mainMenu_autofireRate;
extern int mainMenu_customAutofireButton;
extern int mainMenu_showStatus;
extern int mainMenu_mouseMultiplier;
extern int mainMenu_mouseEmulation;
Expand Down
19 changes: 19 additions & 0 deletions src/gp2x/menu/menu_display.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ static const char *text_str_32k="32k";
static const char *text_str_22k="22k";
static const char *text_str_11k="11k";
static const char *text_str_8k="8k";
static const char *text_str_status_line="Status Line";


#define MAX_CUSTOM_ID 96
#define MIN_CUSTOM_ID -5
Expand Down Expand Up @@ -64,6 +66,7 @@ enum {
#ifdef __PSP2__
MENUDISPLAY_SHADER,
#endif
MENUDISPLAY_STATUSLINE,
#if defined(USE_UAE4ALL_VKBD) && defined(LARGEKEYBOARD)
MENUDISPLAY_VKBDLANGUAGE,
#endif
Expand Down Expand Up @@ -286,6 +289,18 @@ static void draw_displayMenu(int c)
else
write_text(tabstop3-2,menuLine,value);
#endif
// MENUDISPLAY_STATUSLINE
menuLine+=2;
write_text(leftMargin, menuLine,text_str_status_line);
if ((!mainMenu_showStatus)&&((menuDisplay!=MENUDISPLAY_STATUSLINE)||(bb)))
write_text_inv(tabstop2,menuLine, "Off");
else
write_text(tabstop2, menuLine, "Off");
if ((mainMenu_showStatus)&&((menuDisplay!=MENUDISPLAY_STATUSLINE)||(bb)))
write_text_inv(tabstop4, menuLine,"On");
else
write_text(tabstop4, menuLine,"On");

#if defined(USE_UAE4ALL_VKBD) && defined(LARGEKEYBOARD)
// MENUDISPLAY_VKBDLANGUAGE
menuLine+=2;
Expand Down Expand Up @@ -599,6 +614,10 @@ static int key_displayMenu(int *c)
}
break;
#endif
case MENUDISPLAY_STATUSLINE:
if ((left)||(right))
mainMenu_showStatus=!mainMenu_showStatus;
break;
#ifdef LARGEKEYBOARD
case MENUDISPLAY_VKBDLANGUAGE:
if (left)
Expand Down
96 changes: 67 additions & 29 deletions src/gp2x/menu/menu_misc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
#define SDL_PollEvent PSP2_PollEvent
#endif

static const char *text_str_status_line="Status Line";

const char *text_str_misc_separator="----------------------------------";
static const char *text_str_misc_title= " Miscellanous -";
static const char *text_str_stylus_offset="StylusOffset";
Expand Down Expand Up @@ -72,8 +70,10 @@ enum {
#endif
MENUMISC_CONTROLCFG,
MENUMISC_JOYSTICK,
MENUMISC_AUTOFIRE,
MENUMISC_STATUSLINE,
MENUMISC_AUTOFIRERATE,
#ifdef __PSP2__
MENUMISC_CUSTOMAUTOFIREBUTTON,
#endif
#ifdef __PSP2__
MENUMISC_MOUSEEMULATION,
MENUMISC_LEFTSTICKMOUSE,
Expand Down Expand Up @@ -109,6 +109,7 @@ static void draw_miscMenu(int c)
SDL_Rect r;
extern SDL_Surface *text_screen;
char cpuSpeed[8];
char tmpString[16];

r.x=80-64; r.y=0; r.w=110+64+64; r.h=240;

Expand Down Expand Up @@ -316,36 +317,59 @@ static void draw_miscMenu(int c)
else
write_text(tabstop9-1,menuLine,"Both");

// MENUMISC_AUTOFIRE
// MENUMISC_AUTOFIRERATE
menuLine+=2;
write_text(leftMargin,menuLine,"Autofire Rate");

if ((mainMenu_autofireRate==12)&&((menuMisc!=MENUMISC_AUTOFIRE)||(bb)))
if ((mainMenu_autofireRate==8)&&((menuMisc!=MENUMISC_AUTOFIRERATE)||(bb)))
write_text_inv(tabstop3-2,menuLine,"Light");
else
write_text(tabstop3-2,menuLine,"Light");

if ((mainMenu_autofireRate==8)&&((menuMisc!=MENUMISC_AUTOFIRE)||(bb)))
if ((mainMenu_autofireRate==4)&&((menuMisc!=MENUMISC_AUTOFIRERATE)||(bb)))
write_text_inv(tabstop6-2,menuLine,"Medium");
else
write_text(tabstop6-2,menuLine,"Medium");

if ((mainMenu_autofireRate==4)&&((menuMisc!=MENUMISC_AUTOFIRE)||(bb)))
if ((mainMenu_autofireRate==2)&&((menuMisc!=MENUMISC_AUTOFIRERATE)||(bb)))
write_text_inv(tabstop9-1,menuLine,"Heavy");
else
write_text(tabstop9-1,menuLine,"Heavy");

// MENUMISC_STATUSLINE
#ifdef __PSP2__
// MENUMISC_CUSTOMAUTOFIREBUTTON
menuLine+=2;
write_text(leftMargin, menuLine,text_str_status_line);
if ((!mainMenu_showStatus)&&((menuMisc!=MENUMISC_STATUSLINE)||(bb)))
write_text_inv(tabstop2,menuLine, "Off");
else
write_text(tabstop2, menuLine, "Off");
if ((mainMenu_showStatus)&&((menuMisc!=MENUMISC_STATUSLINE)||(bb)))
write_text_inv(tabstop4, menuLine,"On");
write_text(leftMargin,menuLine,"Custom Autofire Button");

switch (mainMenu_customAutofireButton)
{
case 0:
strcpy(tmpString,"None");
break;
case 1:
strcpy(tmpString,"Square");
break;
case 2:
strcpy(tmpString,"Triangle");
break;
case 3:
strcpy(tmpString,"Circle");
break;
case 4:
strcpy(tmpString,"Cross");
break;
case 5:
strcpy(tmpString,"L");
break;
case 6:
strcpy(tmpString,"R");
break;
}
if ((menuMisc!=MENUMISC_CUSTOMAUTOFIREBUTTON)||(bb))
write_text_inv(tabstop6,menuLine,tmpString);
else
write_text(tabstop4, menuLine,"On");
write_text(tabstop6,menuLine,tmpString);
#endif

menuLine++;
write_text(leftMargin,menuLine,text_str_misc_separator);
Expand Down Expand Up @@ -722,31 +746,45 @@ static int key_miscMenu(int *c)
else
mainMenu_joyPort=0;
}
break;
case MENUMISC_AUTOFIRE:
break;
case MENUMISC_AUTOFIRERATE:
if(left)
{
if(mainMenu_autofireRate==4)
if(mainMenu_autofireRate==2)
mainMenu_autofireRate=4;
else if(mainMenu_autofireRate==4)
mainMenu_autofireRate=8;
else if(mainMenu_autofireRate==8)
mainMenu_autofireRate=12;
else
mainMenu_autofireRate=4;
mainMenu_autofireRate=2;
}
else if (right)
{
if(mainMenu_autofireRate==4)
mainMenu_autofireRate=12;
if(mainMenu_autofireRate==2)
mainMenu_autofireRate=8;
else if(mainMenu_autofireRate==8)
mainMenu_autofireRate=4;
else
mainMenu_autofireRate=8;
mainMenu_autofireRate=2;
}
break;
case MENUMISC_STATUSLINE:
if ((left)||(right))
mainMenu_showStatus=!mainMenu_showStatus;
#ifdef __PSP2__
case MENUMISC_CUSTOMAUTOFIREBUTTON:
if (left)
{
if (mainMenu_customAutofireButton > 0)
mainMenu_customAutofireButton--;
else
mainMenu_customAutofireButton=0;
}
else if (right)
{
if (mainMenu_customAutofireButton < 6)
mainMenu_customAutofireButton++;
else
mainMenu_customAutofireButton=6;
}
break;
#endif
case MENUMISC_MOUSEMULTIPLIER:
if (left)
{
Expand Down
70 changes: 60 additions & 10 deletions src/gui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ int stylusClickOverride=0;
int stylusAdjustX=0, stylusAdjustY=0;
int screenWidth = 640;

static int customAutofireDelay[4]={ 0,0,0,0 };

extern int mainMenu_autofire;

extern int nr_joysticks;

extern struct gui_info gui_data;
Expand Down Expand Up @@ -632,9 +636,56 @@ void gui_handle_events (void)
buttonSelect[i] = SDL_JoystickGetButton(currentJoy, PAD_SELECT);
buttonStart[i] = SDL_JoystickGetButton(currentJoy, PAD_START);
}
#ifdef USE_UAE4ALL_VKBD
//no autofire when keyboard is displayed
if (mainMenu_customAutofireButton && !vkbd_mode)
#else
if (mainMenu_customAutofireButton)
#endif
{
int *autoButton;
for (int i=0; i<nr_joysticks; i++)
{
int *autoButton;
switch (mainMenu_customAutofireButton)
{
case 1:
autoButton = &buttonA[i];
break;
case 2:
autoButton = &buttonY[i];
break;
case 3:
autoButton = &buttonB[i];
break;
case 4:
autoButton = &buttonX[i];
break;
case 5:
autoButton = &triggerL[i];
break;
case 6:
autoButton = &triggerR[i];
break;
}
if (*autoButton)
{
if (customAutofireDelay[i]>mainMenu_autofireRate)
{
*autoButton=1; // press button for one frame only
customAutofireDelay[i]=0;
}
else
*autoButton=0;
customAutofireDelay[i]++;
}
else
customAutofireDelay[i]=0;
}
}

if(buttonSelect[0])
{
SDL_JoystickUpdate();
//re-center the Joysticks when the user opens the menu
for (int i=0; i<nr_joysticks; i++)
{
Expand Down Expand Up @@ -845,14 +896,14 @@ if(!vkbd_mode)
// Change zoom:
// quickSwitch resolution presets
if (can_change_quickSwitchModeID)
{
if (quickSwitchModeID==0)
{
if (quickSwitchModeID==sizeof(quickSwitchModes)/sizeof(quickSwitchModes[0])-1)
{
quickSwitchModeID=sizeof(quickSwitchModes)/sizeof(quickSwitchModes[0])-1;
quickSwitchModeID=0;
}
else
{
quickSwitchModeID--;
quickSwitchModeID++;
}
mainMenu_displayedLines =
quickSwitchModes[quickSwitchModeID].num_lines;
Expand All @@ -875,15 +926,14 @@ if(!vkbd_mode)
{
#ifdef __PSP2__
if (can_change_quickSwitchModeID)
{
if (quickSwitchModeID==0)
{

if (quickSwitchModeID==sizeof(quickSwitchModes)/sizeof(quickSwitchModes[0])-1)
{
quickSwitchModeID=0;
quickSwitchModeID=sizeof(quickSwitchModes)/sizeof(quickSwitchModes[0])-1;
}
else
{
quickSwitchModeID++;
quickSwitchModeID--;
}
mainMenu_displayedLines =
quickSwitchModes[quickSwitchModeID].num_lines;
Expand Down

0 comments on commit ae5cb71

Please sign in to comment.