finally got around to figure out how to tell the difference between cursor type above 54.
examples are:
draenor mission table
draenor architect table
wild battle pets
battle pet
-counted
Code:
// 24931 CGUnit_C::GetCursorOverride sub 0x46d825
int cursor = Mem.Read<int>(Offsets.s_cursorMode);
if( cursor < 55)
{
return (eCGCursorType)cursor;
}
CGObject target = MouseOverGuid.ToObject;
if (target != null && target.IsUnit)
{
uint address = Mem.Read<uint>(target.Address + 0xc78);
if (address != 0)
{
uint address2 = Mem.Read<uint>(address + 0x18);
if (address2 != 0)
{
string name = Mem.Read<string>(address2);
switch(name)
{
case "missions":
return eCGCursorType.MISSION;
case "architect":
return eCGCursorType.ARCHITECT;
case "wildpetcapturable":
return eCGCursorType.WILDPETCAPTUREABLE;
case "wildpet":
return eCGCursorType.WILDPET;
default:
break;
}
}
}
}
return eCGCursorType.UNKOWN;