nJoy: Fixed bugs in settings saving and loading
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2069 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
2199b15ca6
commit
eb91942fd6
|
@ -216,9 +216,6 @@ void Config::Load(bool ChangePad, bool ChangeSaveByID)
|
||||||
the current amount of connected PadMapping */
|
the current amount of connected PadMapping */
|
||||||
if(PadMapping[i].ID >= SDL_NumJoysticks()) continue;
|
if(PadMapping[i].ID >= SDL_NumJoysticks()) continue;
|
||||||
|
|
||||||
//PanicAlert("%i %i",PadMapping[i].ID, SDL_NumJoysticks());
|
|
||||||
//PanicAlert("%s", joyinfo[PadMapping[i].ID].Name);
|
|
||||||
|
|
||||||
// Create a section name
|
// Create a section name
|
||||||
SectionName = joyinfo[PadMapping[i].ID].Name;
|
SectionName = joyinfo[PadMapping[i].ID].Name;
|
||||||
}
|
}
|
||||||
|
|
|
@ -272,20 +272,19 @@ void ConfigBox::DoSave(bool ChangePad, int Slot)
|
||||||
ToBlank();
|
ToBlank();
|
||||||
}
|
}
|
||||||
|
|
||||||
// OnSaveById
|
// On changing the SaveById option we update all pages
|
||||||
// ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
// ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
void ConfigBox::OnSaveById()
|
void ConfigBox::OnSaveById()
|
||||||
{
|
{
|
||||||
// Save current settings
|
// Save current settings
|
||||||
DoSave(false, notebookpage);
|
DoSave(false, notebookpage);
|
||||||
|
|
||||||
// Update the setting and load the settings
|
// Update the SaveByID setting and load the settings
|
||||||
g_Config.bSaveByID = m_CBSaveByID[notebookpage]->IsChecked();
|
g_Config.bSaveByID = m_CBSaveByID[notebookpage]->IsChecked();
|
||||||
g_Config.Load(false, true);
|
g_Config.Load(false, true);
|
||||||
|
|
||||||
// Update GUI and PadMapping[]
|
// Update the GUI from the now updated PadMapping[]
|
||||||
UpdateGUI(notebookpage);
|
UpdateGUIAll(-1);
|
||||||
SaveButtonMapping(notebookpage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Change Joystick
|
// Change Joystick
|
||||||
|
@ -328,14 +327,12 @@ void ConfigBox::PadClose(int Close) // Close for slot 1, 2, 3 or 4
|
||||||
// ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
// ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
||||||
void ConfigBox::NotebookPageChanged(wxNotebookEvent& event)
|
void ConfigBox::NotebookPageChanged(wxNotebookEvent& event)
|
||||||
{
|
{
|
||||||
//int oldnotebookpage = notebookpage;
|
// Save current settings now, don't wait for OK
|
||||||
notebookpage = event.GetSelection();
|
if(ControlsCreated && !g_Config.bSaveByID) DoSave(false, notebookpage);
|
||||||
//int OldId = PadMapping[oldnotebookpage].ID;
|
|
||||||
//int NewId = PadMapping[notebookpage].ID;
|
// Update the global variable
|
||||||
|
notebookpage = event.GetSelection();
|
||||||
|
|
||||||
// Check if it has changed. If it has save the old Id and load the new Id
|
|
||||||
//if(OldId != NewId && NumGoodPads > 0) DoChangeJoystick();
|
|
||||||
|
|
||||||
// Update GUI
|
// Update GUI
|
||||||
if(ControlsCreated) UpdateGUI(notebookpage);
|
if(ControlsCreated) UpdateGUI(notebookpage);
|
||||||
}
|
}
|
||||||
|
@ -383,9 +380,24 @@ void ConfigBox::SaveButtonMappingAll(int Slot)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
if (joyinfo[PadMapping[i].ID].Name == joyinfo[PadMapping[Slot].ID].Name)
|
if (joyinfo[PadMapping[i].ID].Name == joyinfo[PadMapping[Slot].ID].Name)
|
||||||
SaveButtonMapping(i, false);
|
SaveButtonMapping(i, false, Slot);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ConfigBox::UpdateGUIAll(int Slot)
|
||||||
|
{
|
||||||
|
if(Slot == -1)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 4; i++) UpdateGUI(i);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 4; i++)
|
||||||
|
if (joyinfo[PadMapping[i].ID].Name == joyinfo[PadMapping[Slot].ID].Name)
|
||||||
|
UpdateGUI(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ConfigBox::ChangeSettings( wxCommandEvent& event )
|
void ConfigBox::ChangeSettings( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
switch(event.GetId())
|
switch(event.GetId())
|
||||||
|
@ -404,10 +416,9 @@ void ConfigBox::ChangeSettings( wxCommandEvent& event )
|
||||||
SizeWindow();
|
SizeWindow();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IDC_CONTROLTYPE:
|
case IDC_CONTROLTYPE:
|
||||||
case IDC_TRIGGERTYPE:
|
case IDC_TRIGGERTYPE:
|
||||||
SaveButtonMapping(notebookpage);
|
//UpdateGUI(notebookpage);
|
||||||
UpdateGUI(notebookpage);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IDC_JOYNAME:
|
case IDC_JOYNAME:
|
||||||
|
@ -426,6 +437,7 @@ void ConfigBox::ChangeSettings( wxCommandEvent& event )
|
||||||
|
|
||||||
// Update all slots that use this device
|
// Update all slots that use this device
|
||||||
if(g_Config.bSaveByID) SaveButtonMappingAll(notebookpage);
|
if(g_Config.bSaveByID) SaveButtonMappingAll(notebookpage);
|
||||||
|
if(g_Config.bSaveByID) UpdateGUIAll(notebookpage);
|
||||||
}
|
}
|
||||||
///////////////////////////////
|
///////////////////////////////
|
||||||
|
|
||||||
|
|
|
@ -320,6 +320,7 @@ class ConfigBox : public wxDialog
|
||||||
void UpdateGUIKeys(int controller);
|
void UpdateGUIKeys(int controller);
|
||||||
void SaveButtonMapping(int controller, bool DontChangeId = false, int FromSlot = -1);
|
void SaveButtonMapping(int controller, bool DontChangeId = false, int FromSlot = -1);
|
||||||
void SaveButtonMappingAll(int Slot);
|
void SaveButtonMappingAll(int Slot);
|
||||||
|
void UpdateGUIAll(int Slot);
|
||||||
void ToBlank(bool ToBlank = true);
|
void ToBlank(bool ToBlank = true);
|
||||||
void OnSaveById();
|
void OnSaveById();
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ void ConfigBox::UpdateGUIKeys(int controller)
|
||||||
m_CoBDiagonal[controller]->SetValue(wxString::FromAscii(PadMapping[controller].SDiagonal.c_str()));
|
m_CoBDiagonal[controller]->SetValue(wxString::FromAscii(PadMapping[controller].SDiagonal.c_str()));
|
||||||
m_CBS_to_C[controller]->SetValue(PadMapping[controller].bSquareToCircle);
|
m_CBS_to_C[controller]->SetValue(PadMapping[controller].bSquareToCircle);
|
||||||
|
|
||||||
//LogMsg("bSquareToCircle: %i\n", PadMapping[controller].bSquareToCircle);
|
//LogMsg("m_TriggerType[%i] = %i\n", controller, PadMapping[controller].triggertype);
|
||||||
|
|
||||||
// Update D-Pad
|
// Update D-Pad
|
||||||
if(PadMapping[controller].controllertype == CTL_DPAD_HAT)
|
if(PadMapping[controller].controllertype == CTL_DPAD_HAT)
|
||||||
|
@ -141,7 +141,8 @@ void ConfigBox::SaveButtonMapping(int controller, bool DontChangeId, int FromSlo
|
||||||
m_JoyButtonZ[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].buttons[CTL_Z_TRIGGER] = value; tmp.clear();
|
m_JoyButtonZ[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].buttons[CTL_Z_TRIGGER] = value; tmp.clear();
|
||||||
m_JoyButtonStart[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].buttons[CTL_START] = value; tmp.clear();
|
m_JoyButtonStart[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].buttons[CTL_START] = value; tmp.clear();
|
||||||
|
|
||||||
//LogMsg("SaveButtonMapping: Key:%i From:%i To:%i\n", m_TriggerType[FromSlot]->GetSelection(), FromSlot, controller);
|
//LogMsg("PadMapping[%i].triggertype = %i, m_TriggerType[%i]->GetSelection() = %i\n",
|
||||||
|
// controller, PadMapping[controller].triggertype, FromSlot, m_TriggerType[FromSlot]->GetSelection());
|
||||||
|
|
||||||
// The halfpress button
|
// The halfpress button
|
||||||
m_JoyButtonHalfpress[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].halfpress = value; tmp.clear();
|
m_JoyButtonHalfpress[FromSlot]->GetValue().ToLong(&value); PadMapping[controller].halfpress = value; tmp.clear();
|
||||||
|
|
Loading…
Reference in New Issue