I have finished most of my transitional steps from the last beta to the new one. I just hope that I can get some actual value behind the information provided before I release binaries and source again.
As you can see, I moved over to a tree view. Sadly, this is a third party control and it's slow as shit. Since the code adds items via a named path, I even have a collections class caching the path to node lookups. The problem is in the third party control. It apears to not properly impliment BeingUpdate and EndUpdate since that seems to cause it to redraw even more. I'm going to have a look at his code and see if I can fix up at least that problem, if not, any one know any decent tree list views?
The only game specific code for the above output is:
public class MarioLuigi : GameGeneric {
public MarioLuigi(EmuClient vba, MainForm mainform)
: base(vba, mainform) {
Title = "Mario and Luigi: Super Star Saga (USA)";
}
public override void UpdateDisplay() {
AddItem("Mario\\HP", Emu.Short(0x02004866) + "\\" + Emu.Short(0x0200486A));
AddItem("Mario\\BP", Emu.Short(0x0200486C) + "\\" + Emu.Short(0x02004870));
AddItem("Luigi\\HP", Emu.Short(0x020048A2) + "\\" + Emu.Short(0x020048A6));
AddItem("Luigi\\BP", Emu.Short(0x020048A8) + "\\" + Emu.Short(0x020048AC));
AddItem("Luigi\\Level", Emu.Byte(0x020048C4));
AddItem("Misc\\Coins", Emu.Short(0x020048E0));
}
}
I'm rather pleased at how simple I was able to keep it. The Emu class will translate the provided GBA address into an internaly stored list of views and return what you desire from there. The AddItem member dosn't actualy add an item unless it's not found inside of the cache, otherwise it just updates the current.
Should be simple and flexable enough for any one with mild {}; language knowledge to get what they want working.
Once again, thanks Ike :)