Do the TurboHUD plugin interfaces allow enumeration of SNO Groups? For instance if I wanted to query the Scene sno group to retrieve nav cells, I might do:
Code:
Ptr<SNOGroupStorage<Scene>> ptrGroup = ctx.DataSegment.SNOGroupStorage[(int)SnoGroupId.Scene].Cast<SNOGroupStorage<Scene>>();
SNOGroupStorage<Scene> ptrGroup.Dereference();
var foundScenes =
snoGroupManager1.Container
.Where(o =>
{
if (o.ID != -1 && o.SNOType == SNOType.Scene)
{
o.TakeSnapshot();
try
{
if (o.PtrValue.IsInvalid)
return false;
var sc = o.PtrValue.Dereference();
if (o.ID == mainId)
{
var foundIt = sceneSnos.FirstOrDefault(oo => oo.SSceneID == mainId);
if (foundIt != null)
{
scenes.Add(new Tuple<Enigma.D3.MemoryModel.Core.Scene, Enigma.D3.Assets.Scene>(foundIt, sc));
AlreadySeen[foundIt.SSceneID] = true;
return true;
}
}
var found = sceneSnos.Where(oo => oo.ID != -1 && oo.SceneSNO == sc.x000_Header.x00_SnoId).ToList();
if (found.Count > 0)
{
foreach (var f in found)
{
scenes.Add(new Tuple<Enigma.D3.MemoryModel.Core.Scene, Enigma.D3.Assets.Scene>(f, sc));
AlreadySeen[f.SSceneID] = true;
}
return true;
}
}
catch (Exception ex)
{
Log.Add(ex.ToString(), nameof(LogSettings.Default));
}
finally
{
o.FreeSnapshot();
}
}
return false;
}).ToList();
I'm looking for some way to get ahold of the SNO groups from the TurboHUD plugin framework. Any help would be appreciated!