Added Wii Remote +Control Pad as analog source.

Added AutoLoadSave option.
Fixed regression from 03b282c295.
This commit is contained in:
Extrems 2021-08-29 11:20:47 -04:00
parent e2dda1385e
commit 75c0d1ae96
6 changed files with 110 additions and 69 deletions

View file

@ -43,7 +43,7 @@ static float getStickValue(joystick_t* j, int axis, float maxAbsValue){
enum {
NUNCHUK_AS_ANALOG, IR_AS_ANALOG,
TILT_AS_ANALOG, WHEEL_AS_ANALOG,
NO_ANALOG,
BUTTON_AS_ANALOG, NO_ANALOG,
};
enum {
@ -84,7 +84,8 @@ static button_t analog_sources_wm[] = {
{ 0, TILT_AS_ANALOG, "Tilt" },
{ 1, WHEEL_AS_ANALOG, "Wheel" },
{ 2, IR_AS_ANALOG, "IR" },
{ 3, NO_ANALOG, "None" },
{ 3, BUTTON_AS_ANALOG, "D-Pad" },
{ 4, NO_ANALOG, "None" },
};
static button_t menu_combos[] = {
@ -147,6 +148,15 @@ static int _GetKeys(int Control, BUTTONS * Keys, controller_config_t* config,
} else if(config->analog->mask == WHEEL_AS_ANALOG){
c->X_AXIS = 512 - wpad->accel.y;
c->Y_AXIS = wpad->accel.z - 512;
} else if(config->analog->mask == BUTTON_AS_ANALOG){
if(b & WPAD_BUTTON_DOWN)
c->X_AXIS = +80;
else if(b & WPAD_BUTTON_UP)
c->X_AXIS = -80;
if(b & WPAD_BUTTON_RIGHT)
c->Y_AXIS = +80;
else if(b & WPAD_BUTTON_LEFT)
c->Y_AXIS = -80;
}
if(config->invertedY) c->Y_AXIS = -c->Y_AXIS;

View file

@ -383,23 +383,23 @@ const struct
{ // 4-bit
{ GXGetI4_IA4, GX_TF_IA4, 1, 4, 8192 }, // RGBA as I
{ GetNone, GX_TF_I4, 0, 4, 8192 }, // YUV
{ GXGetCI4RGBA_RGB5A3, GX_TF_RGB5A3, 2, 4, 4096 }, // CI without palette
{ GXGetCI4RGBA_RGB5A3, GX_TF_RGB5A3, 2, 4, 4096 }, // CI as I (FIXME)
{ GXGetIA31_IA4, GX_TF_IA4, 1, 4, 8192 }, // IA
{ GXGetI4_IA4, GX_TF_IA4, 1, 4, 8192 }, // I
},
{ // 8-bit
{ GXGetI8_IA8, GX_TF_IA8, 2, 3, 4096 }, // RGBA as I
{ GetNone, GX_TF_I4, 0, 3, 4096 }, // YUV
{ GXGetI8_IA8, GX_TF_IA8, 2, 3, 4096 }, // CI without palette
{ GXGetCI8RGBA_RGB5A3, GX_TF_RGB5A3, 2, 3, 2048 }, // CI as I (FIXME)
{ GXGetIA44_IA4, GX_TF_IA4, 1, 3, 4096 }, // IA
{ GXGetI8_IA8, GX_TF_IA8, 2, 3, 4096 }, // I
},
{ // 16-bit
{ GXGetRGBA5551_RGB5A3, GX_TF_RGB5A3, 2, 2, 2048 }, // RGBA
{ GXGetUYVY8888_RGBA8, GX_TF_RGBA8, 4, 2, 2048 }, // YUV
{ GXGetIA88_IA8, GX_TF_IA8, 2, 2, 2048 }, // CI as IA
{ GXGetCI16RGBA_RGB5A3, GX_TF_RGB5A3, 2, 2, 1024 }, // CI as I (FIXME)
{ GXGetIA88_IA8, GX_TF_IA8, 2, 2, 2048 }, // IA
{ GetNone, GX_TF_I4, 0, 2, 2048 }, // I
{ GXGetIA88_IA8, GX_TF_RGBA8, 4, 2, 2048 }, // I
},
{ // 32-bit
{ GXGetRGBA8888_RGBA8, GX_TF_RGBA8, 4, 2, 1024 }, // RGBA
@ -411,28 +411,28 @@ const struct
},
{ // DUMMY
{ // 4-bit
{ GXGetCI4RGBA_RGB5A3, GX_TF_RGB5A3, 2, 4, 4096 }, // CI (Banjo-Kazooie uses this, doesn't make sense, but it works...)
{ GetNone, GX_TF_I4, 0, 4, 4096 }, // YUV
{ GXGetCI4RGBA_RGB5A3, GX_TF_RGB5A3, 2, 4, 4096 }, // RGBA as CI
{ GetNone, GX_TF_I4, 0, 4, 4096 }, // YUV as CI
{ GXGetCI4RGBA_RGB5A3, GX_TF_RGB5A3, 2, 4, 4096 }, // CI
{ GXGetCI4RGBA_RGB5A3, GX_TF_RGB5A3, 2, 4, 4096 }, // IA as CI
{ GXGetCI4RGBA_RGB5A3, GX_TF_RGB5A3, 2, 4, 4096 }, // I as CI
},
{ // 8-bit
{ GXGetCI8RGBA_RGB5A3, GX_TF_RGB5A3, 2, 3, 2048 }, // RGBA
{ GetNone, GX_TF_I4, 0, 3, 2048 }, // YUV
{ GXGetCI8RGBA_RGB5A3, GX_TF_RGB5A3, 2, 3, 2048 }, // RGBA as CI
{ GetNone, GX_TF_I4, 0, 3, 2048 }, // YUV as CI
{ GXGetCI8RGBA_RGB5A3, GX_TF_RGB5A3, 2, 3, 2048 }, // CI
{ GXGetCI8RGBA_RGB5A3, GX_TF_RGB5A3, 2, 3, 2048 }, // IA as CI
{ GXGetCI8RGBA_RGB5A3, GX_TF_RGB5A3, 2, 3, 2048 }, // I as CI
},
{ // 16-bit
{ GXGetCI16RGBA_RGB5A3, GX_TF_RGB5A3, 2, 2, 1024 }, // RGBA
{ GXGetUYVY8888_RGBA8, GX_TF_RGBA8, 4, 2, 2048 }, // YUV
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // CI
{ GXGetCI16RGBA_RGB5A3, GX_TF_RGB5A3, 2, 2, 1024 }, // RGBA as CI
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // YUV as CI
{ GXGetCI16RGBA_RGB5A3, GX_TF_RGB5A3, 2, 2, 1024 }, // CI
{ GXGetCI16RGBA_RGB5A3, GX_TF_RGB5A3, 2, 2, 1024 }, // IA as CI
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // I
{ GXGetCI16RGBA_RGB5A3, GX_TF_RGB5A3, 2, 2, 1024 }, // I as CI
},
{ // 32-bit
{ GXGetRGBA8888_RGBA8, GX_TF_RGBA8, 4, 2, 1024 }, // RGBA
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // RGBA
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // YUV
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // CI
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // IA
@ -441,28 +441,28 @@ const struct
},
{ // G_TT_RGBA16
{ // 4-bit
{ GXGetCI4RGBA_RGB5A3, GX_TF_RGB5A3, 2, 4, 4096 }, // CI (Banjo-Kazooie uses this, doesn't make sense, but it works...)
{ GetNone, GX_TF_I4, 0, 4, 4096 }, // YUV
{ GXGetCI4RGBA_RGB5A3, GX_TF_RGB5A3, 2, 4, 4096 }, // RGBA as CI
{ GetNone, GX_TF_I4, 0, 4, 4096 }, // YUV as CI
{ GXGetCI4RGBA_RGB5A3, GX_TF_RGB5A3, 2, 4, 4096 }, // CI
{ GXGetCI4RGBA_RGB5A3, GX_TF_RGB5A3, 2, 4, 4096 }, // IA as CI
{ GXGetCI4RGBA_RGB5A3, GX_TF_RGB5A3, 2, 4, 4096 }, // I as CI
},
{ // 8-bit
{ GXGetCI8RGBA_RGB5A3, GX_TF_RGB5A3, 2, 3, 2048 }, // RGBA
{ GetNone, GX_TF_I4, 0, 3, 2048 }, // YUV
{ GXGetCI8RGBA_RGB5A3, GX_TF_RGB5A3, 2, 3, 2048 }, // RGBA as CI
{ GetNone, GX_TF_I4, 0, 3, 2048 }, // YUV as CI
{ GXGetCI8RGBA_RGB5A3, GX_TF_RGB5A3, 2, 3, 2048 }, // CI
{ GXGetCI8RGBA_RGB5A3, GX_TF_RGB5A3, 2, 3, 2048 }, // IA as CI
{ GXGetCI8RGBA_RGB5A3, GX_TF_RGB5A3, 2, 3, 2048 }, // I as CI
},
{ // 16-bit
{ GXGetCI16RGBA_RGB5A3, GX_TF_RGB5A3, 2, 2, 1024 }, // RGBA
{ GXGetUYVY8888_RGBA8, GX_TF_RGBA8, 4, 2, 2048 }, // YUV
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // CI
{ GXGetCI16RGBA_RGB5A3, GX_TF_RGB5A3, 2, 2, 1024 }, // RGBA as CI
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // YUV as CI
{ GXGetCI16RGBA_RGB5A3, GX_TF_RGB5A3, 2, 2, 1024 }, // CI
{ GXGetCI16RGBA_RGB5A3, GX_TF_RGB5A3, 2, 2, 1024 }, // IA as CI
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // I
{ GXGetCI16RGBA_RGB5A3, GX_TF_RGB5A3, 2, 2, 1024 }, // I as CI
},
{ // 32-bit
{ GXGetRGBA8888_RGBA8, GX_TF_RGBA8, 4, 2, 1024 }, // RGBA
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // RGBA
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // YUV
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // CI
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // IA
@ -471,28 +471,28 @@ const struct
},
{ // G_TT_IA16
{ // 4-bit
{ GXGetCI4IA_IA8, GX_TF_IA8, 2, 4, 4096 }, // IA
{ GetNone, GX_TF_I4, 0, 4, 4096 }, // YUV
{ GXGetCI4IA_IA8, GX_TF_IA8, 2, 4, 4096 }, // RGBA as CI
{ GetNone, GX_TF_I4, 0, 4, 4096 }, // YUV as CI
{ GXGetCI4IA_IA8, GX_TF_IA8, 2, 4, 4096 }, // CI
{ GXGetCI4IA_IA8, GX_TF_IA8, 2, 4, 4096 }, // IA
{ GXGetCI4IA_IA8, GX_TF_IA8, 2, 4, 4096 }, // I
{ GXGetCI4IA_IA8, GX_TF_IA8, 2, 4, 4096 }, // IA as CI
{ GXGetCI4IA_IA8, GX_TF_IA8, 2, 4, 4096 }, // I as CI
},
{ // 8-bit
{ GXGetCI8IA_IA8, GX_TF_IA8, 2, 3, 2048 }, // RGBA
{ GetNone, GX_TF_I4, 0, 3, 2048 }, // YUV
{ GXGetCI8IA_IA8, GX_TF_IA8, 2, 3, 2048 }, // RGBA as CI
{ GetNone, GX_TF_I4, 0, 3, 2048 }, // YUV as CI
{ GXGetCI8IA_IA8, GX_TF_IA8, 2, 3, 2048 }, // CI
{ GXGetCI8IA_IA8, GX_TF_IA8, 2, 3, 2048 }, // IA
{ GXGetCI8IA_IA8, GX_TF_IA8, 2, 3, 2048 }, // I
{ GXGetCI8IA_IA8, GX_TF_IA8, 2, 3, 2048 }, // IA as CI
{ GXGetCI8IA_IA8, GX_TF_IA8, 2, 3, 2048 }, // I as CI
},
{ // 16-bit
{ GXGetCI16IA_IA8, GX_TF_IA8, 2, 2, 1024 }, // RGBA
{ GXGetUYVY8888_RGBA8, GX_TF_RGBA8, 4, 2, 2048 }, // YUV
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // CI
{ GXGetCI16IA_IA8, GX_TF_IA8, 2, 2, 1024 }, // IA
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // I
{ GXGetCI16IA_IA8, GX_TF_IA8, 2, 2, 1024 }, // RGBA as CI
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // YUV as CI
{ GXGetCI16IA_IA8, GX_TF_IA8, 2, 2, 1024 }, // CI
{ GXGetCI16IA_IA8, GX_TF_IA8, 2, 2, 1024 }, // IA as CI
{ GXGetCI16IA_IA8, GX_TF_IA8, 2, 2, 1024 }, // I as CI
},
{ // 32-bit
{ GXGetRGBA8888_RGBA8, GX_TF_RGBA8, 4, 2, 1024 }, // RGBA
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // RGBA
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // YUV
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // CI
{ GetNone, GX_TF_I4, 0, 2, 1024 }, // IA
@ -1520,7 +1520,7 @@ u32 TextureCache_CalculateCRC( u32 t, u32 width, u32 height )
crc = Hash_Calculate( crc, src, bpl );
}
if (gDP.otherMode.textureLUT != G_TT_NONE)
if ((gDP.otherMode.textureLUT != G_TT_NONE) || (gSP.textureTile[t]->format == G_IM_FMT_CI))
{
if (gSP.textureTile[t]->size == G_IM_SIZ_4b)
crc = Hash_Calculate( crc, &TMEM[0x100 + (gSP.textureTile[t]->palette << 4)], 128 );

View file

@ -115,11 +115,11 @@ char renderCpuFramebuffer;
extern timers Timers;
char menuActive;
char skipMenu;
char saveEnabled;
char creditsScrolling;
char shutdown = 0;
char nativeSaveDevice;
char saveStateDevice;
char autoLoadSave;
char autoSave;
char screenMode = 0;
char videoFormat;
@ -164,6 +164,7 @@ static struct {
{ "CountPerOp", ((char*)&count_per_op)+3, COUNT_PER_OP_1, COUNT_PER_OP_3 },
{ "NativeDevice", &nativeSaveDevice, NATIVESAVEDEVICE_SD, NATIVESAVEDEVICE_CARDB },
{ "StatesDevice", &saveStateDevice, SAVESTATEDEVICE_SD, SAVESTATEDEVICE_FAT },
{ "AutoLoadSave", &autoLoadSave, AUTOLOADSAVE_DISABLE, AUTOLOADSAVE_ENABLE },
{ "AutoSave", &autoSave, AUTOSAVE_DISABLE, AUTOSAVE_ENABLE },
{ "LimitVIs", &Timers.limitVIs, LIMITVIS_NONE, LIMITVIS_WAIT_FOR_FRAME },
{ "PollRate", &pollRate, POLLRATE_VSYNC, POLLRATE_11MS },
@ -251,6 +252,7 @@ int main(int argc, char* argv[]){
printToScreen = 1; // Show DEBUG text on screen
printToSD = 0; // Disable SD logging
Timers.limitVIs = 1;
autoLoadSave = 1; // Auto Load Save File
autoSave = 1; // Auto Save Game
dynacore = 1; // Dynarec
#ifndef HW_RVL
@ -438,7 +440,7 @@ extern BOOL mempakWritten;
extern BOOL sramWritten;
extern BOOL flashramWritten;
BOOL hasLoadedROM = FALSE;
int autoSaveLoaded = NATIVESAVEDEVICE_NONE;
int autoLoadedSave = NATIVESAVEDEVICE_NONE;
int loadROM(fileBrowser_file* rom){
int ret = 0;
@ -506,7 +508,7 @@ int loadROM(fileBrowser_file* rom){
cpu_init();
if(autoSave==AUTOSAVE_ENABLE) {
if(autoLoadSave==AUTOLOADSAVE_ENABLE) {
switch (nativeSaveDevice)
{
case NATIVESAVEDEVICE_SD:
@ -541,19 +543,19 @@ int loadROM(fileBrowser_file* rom){
{
case NATIVESAVEDEVICE_SD:
// if (result) menu::MessageBox::getInstance().setMessage("Found & loaded save from SD card");
if (result) autoSaveLoaded = NATIVESAVEDEVICE_SD;
if (result) autoLoadedSave = NATIVESAVEDEVICE_SD;
break;
case NATIVESAVEDEVICE_FAT:
// if (result) menu::MessageBox::getInstance().setMessage("Found & loaded save from FAT device");
if (result) autoSaveLoaded = NATIVESAVEDEVICE_FAT;
if (result) autoLoadedSave = NATIVESAVEDEVICE_FAT;
break;
case NATIVESAVEDEVICE_CARDA:
// if (result) menu::MessageBox::getInstance().setMessage("Found & loaded save from Memory Card A");
if (result) autoSaveLoaded = NATIVESAVEDEVICE_CARDA;
if (result) autoLoadedSave = NATIVESAVEDEVICE_CARDA;
break;
case NATIVESAVEDEVICE_CARDB:
// if (result) menu::MessageBox::getInstance().setMessage("Found & loaded save from Memory Card B");
if (result) autoSaveLoaded = NATIVESAVEDEVICE_CARDB;
if (result) autoLoadedSave = NATIVESAVEDEVICE_CARDB;
break;
}
}

View file

@ -77,8 +77,6 @@ enum limitVIs
LIMITVIS_WAIT_FOR_FRAME
};
extern char saveEnabled; //???
extern char nativeSaveDevice;
enum nativeSaveDevice
{
@ -96,7 +94,14 @@ enum saveStateDevice
SAVESTATEDEVICE_FAT
};
extern char autoSave; //TODO: Use me
extern char autoLoadSave;
enum autoLoadSave
{
AUTOLOADSAVE_DISABLE=0,
AUTOLOADSAVE_ENABLE
};
extern char autoSave;
enum autoSave
{
AUTOSAVE_DISABLE=0,

View file

@ -449,7 +449,7 @@ void fileBrowserFrame_FillPage()
extern BOOL hasLoadedROM;
extern int rom_length;
extern int autoSaveLoaded;
extern int autoLoadedSave;
void Func_PlayGame();
void Func_SetPlayGame();
@ -493,7 +493,7 @@ void fileBrowserFrame_LoadFile(int i)
countrycodestring(ROM_HEADER.Country_code&0xFF, buffer2);
sprintf(buffer,"Country: %s\n",buffer2);
strcat(RomInfo,buffer);
switch (autoSaveLoaded)
switch (autoLoadedSave)
{
case NATIVESAVEDEVICE_NONE:
break;
@ -510,7 +510,7 @@ void fileBrowserFrame_LoadFile(int i)
strcat(RomInfo,"\nFound & loaded save from Memory Card B\n");
break;
}
autoSaveLoaded = NATIVESAVEDEVICE_NONE;
autoLoadedSave = NATIVESAVEDEVICE_NONE;
menu::MessageBox::getInstance().setMessage(RomInfo);
pMenuContext->setActiveFrame(MenuContext::FRAME_MAIN);

View file

@ -85,21 +85,23 @@ void Func_SpeedLimitDl();
void Func_ScalePitchYes();
void Func_ScalePitchNo();
void Func_AutoSaveNativeYes();
void Func_AutoSaveNativeNo();
void Func_AutoLoadSaveYes();
void Func_AutoLoadSaveNo();
void Func_AutoSaveYes();
void Func_AutoSaveNo();
void Func_CopySaves();
void Func_DeleteSaves();
void Func_ReturnFromSettingsFrame();
#define NUM_FRAME_BUTTONS 46
#define NUM_FRAME_BUTTONS 48
#define NUM_TAB_BUTTONS 5
#define FRAME_BUTTONS settingsFrameButtons
#define FRAME_STRINGS settingsFrameStrings
#define NUM_FRAME_TEXTBOXES 16
#define NUM_FRAME_TEXTBOXES 17
#define FRAME_TEXTBOXES settingsFrameTextBoxes
static char FRAME_STRINGS[45][23] =
static char FRAME_STRINGS[46][23] =
{ "General",
"Video",
"Input",
@ -147,6 +149,7 @@ static char FRAME_STRINGS[45][23] =
"VI",
"DL",
//Strings for Saves tab [42]
"Auto Load Native Saves",
"Auto Save Native Saves",
"Copy Saves",
"Delete Saves"};
@ -216,10 +219,12 @@ struct ButtonInfo
{ NULL, BTN_A_SEL, FRAME_STRINGS[38], 345.0, 240.0, 75.0, 56.0, 38, 3, 41, 41, Func_ScalePitchYes, Func_ReturnFromSettingsFrame }, // Scale Pitch: Yes
{ NULL, BTN_A_SEL, FRAME_STRINGS[39], 440.0, 240.0, 75.0, 56.0, 39, 3, 40, 40, Func_ScalePitchNo, Func_ReturnFromSettingsFrame }, // Scale Pitch: No
//Buttons for Saves Tab (starts at button[42])
{ NULL, BTN_A_SEL, FRAME_STRINGS[38], 375.0, 100.0, 75.0, 56.0, 4, 44, 43, 43, Func_AutoSaveNativeYes, Func_ReturnFromSettingsFrame }, // Auto Save Native: Yes
{ NULL, BTN_A_SEL, FRAME_STRINGS[39], 470.0, 100.0, 75.0, 56.0, 4, 44, 42, 42, Func_AutoSaveNativeNo, Func_ReturnFromSettingsFrame }, // Auto Save Native: No
{ NULL, BTN_A_NRM, FRAME_STRINGS[43], 365.0, 170.0, 190.0, 56.0, 42, 45, -1, -1, Func_CopySaves, Func_ReturnFromSettingsFrame }, // Copy Saves
{ NULL, BTN_A_NRM, FRAME_STRINGS[44], 365.0, 240.0, 190.0, 56.0, 44, 4, -1, -1, Func_DeleteSaves, Func_ReturnFromSettingsFrame }, // Delete Saves
{ NULL, BTN_A_SEL, FRAME_STRINGS[38], 375.0, 100.0, 75.0, 56.0, 4, 44, 43, 43, Func_AutoLoadSaveYes, Func_ReturnFromSettingsFrame }, // Auto Load Native Saves: Yes
{ NULL, BTN_A_SEL, FRAME_STRINGS[39], 470.0, 100.0, 75.0, 56.0, 4, 45, 42, 42, Func_AutoLoadSaveNo, Func_ReturnFromSettingsFrame }, // Auto Load Native Saves: No
{ NULL, BTN_A_SEL, FRAME_STRINGS[38], 375.0, 170.0, 75.0, 56.0, 42, 46, 45, 45, Func_AutoSaveYes, Func_ReturnFromSettingsFrame }, // Auto Save Native Saves: Yes
{ NULL, BTN_A_SEL, FRAME_STRINGS[39], 470.0, 170.0, 75.0, 56.0, 43, 46, 44, 44, Func_AutoSaveNo, Func_ReturnFromSettingsFrame }, // Auto Save Native Saves: No
{ NULL, BTN_A_NRM, FRAME_STRINGS[44], 365.0, 240.0, 190.0, 56.0, 44, 47, -1, -1, Func_CopySaves, Func_ReturnFromSettingsFrame }, // Copy Saves
{ NULL, BTN_A_NRM, FRAME_STRINGS[45], 365.0, 310.0, 190.0, 56.0, 46, 4, -1, -1, Func_DeleteSaves, Func_ReturnFromSettingsFrame }, // Delete Saves
};
struct TextBoxInfo
@ -252,7 +257,8 @@ struct TextBoxInfo
{ NULL, FRAME_STRINGS[36], 150.0, 198.0, 1.0, true }, // Speed Limit: Off/VI/DL
{ NULL, FRAME_STRINGS[37], 210.0, 268.0, 1.0, true }, // Scale Pitch: Yes/No
//TextBoxes for Saves Tab (starts at textBox[14])
{ NULL, FRAME_STRINGS[42], 200.0, 128.0, 1.0, true }, // Auto Save Native Save: Yes/No
{ NULL, FRAME_STRINGS[42], 200.0, 128.0, 1.0, true }, // Auto Load Native Saves: Yes/No
{ NULL, FRAME_STRINGS[43], 200.0, 198.0, 1.0, true }, // Auto Save Native Saves: Yes/No
};
SettingsFrame::SettingsFrame()
@ -427,14 +433,16 @@ void SettingsFrame::activateSubmenu(int submenu)
{
FRAME_BUTTONS[i].button->setVisible(true);
FRAME_BUTTONS[i].button->setNextFocus(menu::Focus::DIRECTION_DOWN, FRAME_BUTTONS[42].button);
FRAME_BUTTONS[i].button->setNextFocus(menu::Focus::DIRECTION_UP, FRAME_BUTTONS[45].button);
FRAME_BUTTONS[i].button->setNextFocus(menu::Focus::DIRECTION_UP, FRAME_BUTTONS[47].button);
FRAME_BUTTONS[i].button->setActive(true);
}
for (int i = 15; i < 16; i++)
for (int i = 15; i < NUM_FRAME_TEXTBOXES; i++)
FRAME_TEXTBOXES[i].textBox->setVisible(true);
FRAME_BUTTONS[4].button->setSelected(true);
if (autoSave == AUTOSAVE_ENABLE) FRAME_BUTTONS[42].button->setSelected(true);
else FRAME_BUTTONS[43].button->setSelected(true);
if (autoLoadSave == AUTOLOADSAVE_ENABLE) FRAME_BUTTONS[42].button->setSelected(true);
else FRAME_BUTTONS[43].button->setSelected(true);
if (autoSave == AUTOSAVE_ENABLE) FRAME_BUTTONS[44].button->setSelected(true);
else FRAME_BUTTONS[45].button->setSelected(true);
for (int i = 42; i < NUM_FRAME_BUTTONS; i++)
{
FRAME_BUTTONS[i].button->setVisible(true);
@ -1068,19 +1076,35 @@ void Func_ScalePitchNo()
scalePitch = SCALEPITCH_DISABLE;
}
void Func_AutoSaveNativeYes()
void Func_AutoLoadSaveYes()
{
for (int i = 42; i <= 43; i++)
FRAME_BUTTONS[i].button->setSelected(false);
FRAME_BUTTONS[42].button->setSelected(true);
autoSave = AUTOSAVE_ENABLE;
autoLoadSave = AUTOLOADSAVE_ENABLE;
}
void Func_AutoSaveNativeNo()
void Func_AutoLoadSaveNo()
{
for (int i = 42; i <= 43; i++)
FRAME_BUTTONS[i].button->setSelected(false);
FRAME_BUTTONS[43].button->setSelected(true);
autoLoadSave = AUTOLOADSAVE_DISABLE;
}
void Func_AutoSaveYes()
{
for (int i = 44; i <= 45; i++)
FRAME_BUTTONS[i].button->setSelected(false);
FRAME_BUTTONS[44].button->setSelected(true);
autoSave = AUTOSAVE_ENABLE;
}
void Func_AutoSaveNo()
{
for (int i = 44; i <= 45; i++)
FRAME_BUTTONS[i].button->setSelected(false);
FRAME_BUTTONS[45].button->setSelected(true);
autoSave = AUTOSAVE_DISABLE;
}