mirror of
https://github.com/dborth/snes9xgx.git
synced 2024-11-23 19:19:22 +01:00
Add support for newer format .cht files and OptionBrowser text scrolling (#1038)
* Add support for BML-format .cht files, and OptionBrowser text scrolling * Move BML handling out of cheatmgr.cpp
This commit is contained in:
parent
9b3eccf8a2
commit
67af82ad0c
@ -15,6 +15,7 @@
|
|||||||
#include "snes9xgx.h"
|
#include "snes9xgx.h"
|
||||||
#include "fileop.h"
|
#include "fileop.h"
|
||||||
#include "filebrowser.h"
|
#include "filebrowser.h"
|
||||||
|
#include "bml.h"
|
||||||
|
|
||||||
#define MAX_CHEATS 150
|
#define MAX_CHEATS 150
|
||||||
|
|
||||||
@ -91,7 +92,25 @@ WiiSetupCheats()
|
|||||||
|
|
||||||
// load cheat file if present
|
// load cheat file if present
|
||||||
if(offset > 0)
|
if(offset > 0)
|
||||||
LoadCheatFile (offset);
|
{
|
||||||
|
bml_node bml;
|
||||||
|
if (!bml.parse_file(filepath))
|
||||||
|
{
|
||||||
|
LoadCheatFile (offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
bml_node *n = bml.find_subnode("cheat");
|
||||||
|
if (n)
|
||||||
|
{
|
||||||
|
S9xLoadCheatsFromBMLNode (&bml);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!n)
|
||||||
|
{
|
||||||
|
LoadCheatFile (offset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
FreeSaveBuffer ();
|
FreeSaveBuffer ();
|
||||||
}
|
}
|
||||||
|
@ -79,6 +79,7 @@ GuiOptionBrowser::GuiOptionBrowser(int w, int h, OptionList * l)
|
|||||||
optionTxt[i] = new GuiText(NULL, 20, (GXColor){0, 0, 0, 0xff});
|
optionTxt[i] = new GuiText(NULL, 20, (GXColor){0, 0, 0, 0xff});
|
||||||
optionTxt[i]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
optionTxt[i]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
||||||
optionTxt[i]->SetPosition(8,0);
|
optionTxt[i]->SetPosition(8,0);
|
||||||
|
optionTxt[i]->SetMaxWidth(235);
|
||||||
|
|
||||||
optionVal[i] = new GuiText(NULL, 20, (GXColor){0, 0, 0, 0xff});
|
optionVal[i] = new GuiText(NULL, 20, (GXColor){0, 0, 0, 0xff});
|
||||||
optionVal[i]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
optionVal[i]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE);
|
||||||
@ -312,6 +313,11 @@ void GuiOptionBrowser::Update(GuiTrigger * t)
|
|||||||
|
|
||||||
if(optionBtn[i]->GetState() == STATE_SELECTED)
|
if(optionBtn[i]->GetState() == STATE_SELECTED)
|
||||||
selectedItem = i;
|
selectedItem = i;
|
||||||
|
|
||||||
|
if(selectedItem == i)
|
||||||
|
optionTxt[i]->SetScroll(SCROLL_HORIZONTAL);
|
||||||
|
else
|
||||||
|
optionTxt[i]->SetScroll(SCROLL_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// pad/joystick navigation
|
// pad/joystick navigation
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#define _CHEATS_H_
|
#define _CHEATS_H_
|
||||||
|
|
||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
#include "bml.h"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
struct SCheat
|
struct SCheat
|
||||||
@ -95,6 +96,7 @@ void S9xSearchForChange (SCheatData *, S9xCheatComparisonType, S9xCheatDataSize,
|
|||||||
void S9xSearchForValue (SCheatData *, S9xCheatComparisonType, S9xCheatDataSize, uint32, bool8, bool8);
|
void S9xSearchForValue (SCheatData *, S9xCheatComparisonType, S9xCheatDataSize, uint32, bool8, bool8);
|
||||||
void S9xSearchForAddress (SCheatData *, S9xCheatComparisonType, S9xCheatDataSize, uint32, bool8);
|
void S9xSearchForAddress (SCheatData *, S9xCheatComparisonType, S9xCheatDataSize, uint32, bool8);
|
||||||
void S9xOutputCheatSearchResults (SCheatData *);
|
void S9xOutputCheatSearchResults (SCheatData *);
|
||||||
|
void S9xLoadCheatsFromBMLNode (bml_node *);
|
||||||
|
|
||||||
const char * S9xGameGenieToRaw (const char *, uint32 &, uint8 &);
|
const char * S9xGameGenieToRaw (const char *, uint32 &, uint8 &);
|
||||||
const char * S9xProActionReplayToRaw (const char *, uint32 &, uint8 &);
|
const char * S9xProActionReplayToRaw (const char *, uint32 &, uint8 &);
|
||||||
|
@ -558,7 +558,7 @@ static int S9xCheatIsDuplicate (const char *name, const char *code)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void S9xLoadCheatsFromBMLNode (bml_node *n)
|
void S9xLoadCheatsFromBMLNode (bml_node *n)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user