Code:
using System.Reflection;
namespace LazyLib.Wow
{
public class PublicPointers
{
/// <summary>
/// Globals
/// </summary>
public enum Globals
{
PlayerName = 0x29818E8,
}
/// <summary>
/// InGame
/// </summary>
public enum InGame
{
InGame = 0x28A26A4,
LoadingScreen = 0x256D620,
RealmName = 0x27EE630,
}
}
internal class Pointers
{
/// <summary>
/// ActionBar
/// </summary>
internal enum ActionBar
{
ActionBarFirstSlot = 0x28AE530,
ActionBarBonus = ActionBarFirstSlot + 0x240,
CurrentActionBar = 0x28AEB84,
}
/// <summary>
/// Battleground
/// </summary>
internal enum Battleground
{
BattlegroundStartTickcount = 0x28AC974,
Timestamp = 0x25BFB5C,
IsBattlegroundFinished = 0x28ACC1C,
BattlegroundWinner = 0x28ACC20,
BattlegroundInfo = 0x24DC220,
UISelectedBattlegroundId = 0x28F036B, // Pattern bonk but i dont use but updated
}
/// <summary>
/// Corpse
/// </summary>
internal enum Corpse
{
X = 0x24D2800,
Y = X + 0x4,
Z = X + 0x8,
}
/// <summary>
/// Party
/// </summary>
internal enum Party
{
PartyOffset = 0x28AC7D0 ,
IsInGroupHome = 0x28AC7D0 ,
IsInGroupInstance = 0x28AC7D8,
NumOfPlayers = 0x178,
NumOfPlayers_SuBGroup = 0x17C,
PlayerGuid = 0x10,
}
/// <summary>
/// AutoLoot
/// </summary>
internal enum AutoLoot
{
Pointer = 0x28A2328,
Offset = 0x5C,
}
/// <summary>
/// ClickToMove
/// </summary>
internal enum ClickToMove
{
Pointer = 0x28A2308,
Offset = 0x5C,
}
/// <summary>
/// Reversed from CGUnit_C__GetCreatureRank
/// </summary>
internal enum CgUnitCGetCreatureRank
{
Offset1 = 0x17B8,
Offset2 = 0x34,
}
/// <summary>
/// reversed from CGUnit_C__GetCreatureType
/// </summary>
internal enum CgUnitCGetCreatureType
{
Offset1 = 0x17B8,
Offset2 = 0x30,
}
/// <summary>
/// reversed from CGWorldFrame__GetActiveCamera
/// </summary>
internal enum CgWorldFrameGetActiveCamera
{
CameraPointer = 0x28A3210 ,
CameraOffset = 0x3330,
CameraX = 0x8,
CameraY = 0xC,
CameraZ = 0x10,
CameraMatrix = 0x14,
}
/// <summary>
/// Search for CGUnit_C::GetSkinnableType_Checked
/// </summary>
internal enum Skinning
{
SkinnableFlags1 = 0x17B8,
SkinnableFlags2 = 0x0CC,
}
/// <summary>
/// AuctionHouse
/// </summary>
internal enum AuctionHouse
{
AuctionListCount = 0x28EE348,
AuctionList = 0x28EE350,
AuctionOwnerCount = 0x28EE368,
AuctionOwnerList = 0x28EE370,
AuctionBidderCount = 0x28EE388,
AuctionBidderList = 0x28EE390,
}
/// <summary>
/// reversed from CGActionBar__IsCurrentAction
/// </summary>
internal enum AutoAttack
{
IsAutoRepeatingSpell = 0x25DA970,
IsInMelee = 0xAF6C,
IsInMelee1 = 0x18A8,
AutoAttackFlag = 0xEE8,
AutoAttackMask = 0xEEC,
///Address seems to show the GUID of the Auto Attack target
AutoAttackGUID = 0xAF6C,
///Shows 0x06 when not wanding, 0x0C or 0x0E when wanding
///Wanding = 0xEF8
}
/// <summary>
/// CastingInfo
/// </summary>
internal enum CastingInfo
{
IsCasting = 0x1990,
ChanneledCasting = 0x670,
}
/// <summary>
/// reversed from CGWorldFrame__GetActiveCamera
/// </summary>
internal enum Chat : uint
{
ChatStart = 0x2870200 ,
chatBufferPos = 0x289FD20,
OffsetToNextMsg = 0xCB8,
MsgSenderGuid = 0x00,
MsgSenderName = 0x34,
MsgFullMessage = 0xE6,
MsgChatType = 0xCA0,
MsgChannelNum = 0xCA4,
MsgTimeStamp = 0xCB0,
ChatQueueDepth = 0x3C,
}
/// <summary>
/// BlueChat
/// </summary>
internal enum Messages
{
EventMessage = 0x28A15F0,
}
/// <summary>
/// Container
/// </summary>
internal enum Container
{
EquippedBagGUID = 0x28C09C8, // wrong pattern fixed
}
/// <summary>
/// Globals
/// </summary>
internal enum Globals
{
RedMessage = 0x28A15F0,
MouseOverGUID = 0x28A26C8,
LootWindow = 0x28B2080,
ChatboxIsOpen = 0x25E5084,
CursorType = 0x293AAD0,
CursorType2 = CursorType + 0x04 ,
SelectedSpellId = 0x28C09E8, // wrong pattern need to fix updated tho
CGGameUI__m_cursorItem = 0x28A1578,
CGGameUI__m_cursorSpell = 0x28A15A0,
IsMouseButtonPressed = 0x25BFBAC,
Indoors = 0x25C3B99,
IsBobbing = 0x14C ,
ArchFacing = 0x198 ,
ArchFacingOffset2 = 0x30 ,
}
/// <summary>
/// KeyBinding
/// </summary>
internal enum KeyBinding
{
NumKeyBindings = 0x28B0368,
First = 0x188,
Next = 0x178,
Key = 0x30,
Command = 0x58,
}
/// <summary>
/// Quest
/// </summary>
internal enum Quest
{
m_quests = 0x28B0AD0,
m_numQuests = 0x28B0960,
m_currentQuest = 0x28D4FC4,
m_questTitle = 0x28E0110 , //todo fix Pattern updated tho
m_gossipQuests = 0x28A7378,
QuestsCompleted = 0x25A5B6C, // Pattern broke af updated tho
GetNumQuestChoices = 0x28E4510,
GetQuestReward = 0x28E4518,
CGQuestInfo_Available__Quest = 0x28E3C10,
CGQuestInfo_Available__Num = 0x28D4FDC,
CGQuestInfo_Active__Num = 0x28D4FE0,
CGQuestInfo_Active__Quest = 0x28DA464,
}
/// <summary>
/// ObjectManager
/// </summary>
internal enum ObjectManager
{
CurMgrPointer = 0x2680498,
LocalPlayerGUID = 0x29818D0,
TargetGUID = 0x24DA900,
PetGUID = 0x28B164C, // pattern def broke somewhere i think todo check future
StorageField = 0x10 ,
ObjectType = 0x20 ,
NextObject = 0x70 ,
FirstObject = 0x18 ,
LocalGUID = 0x58 ,
}
/// <summary>
/// Script_UnitAffectingCombat
///v4 = v2 && (*(_DWORD *)(*(_DWORD *)(v2 + 284) + 316) >> 19) & 1;
/// </summary>
internal enum InCombat
{
Mask = 19,
Offset2 = 0x158,
Offset1 = 0x188,
}
/// <summary>
/// Runes
/// </summary>
internal enum Runes
{
RuneTypes = 0x0,
RunesOffset = 0x0,
//Offset is usually RuneTypes + 0x64
}
/// <summary>
/// CGUnit_C__GetShapeshiftFormId
/// </summary>
internal enum ShapeshiftForm
{
BaseAddressOffset1 = 0x188,
BaseAddressOffset2 = 0x27B,
}
/// <summary>
/// SpellCooldown
/// </summary>
internal enum SpellCooldown : uint
{
CooldPown = 0x24C7840,
}
/// <summary>
/// Search for PowerTypePointer
/// </summary>
internal enum PowerIndex
{
PowerIndexArrays = 0x2626D70,
Multiplicator = 13,
}
/// <summary>
/// Swimming
/// </summary>
internal enum Swimming
{
Pointer = 0x198,
Offset = 0x58,
Mask = 0x100000,
}
/// <summary>
/// IsFlying
/// </summary>
internal enum IsFlying
{
Pointer = 0x198,
Offset = 0x58,
Mask = 0x1000000,
}
/// <summary>
/// IsFalling
/// </summary>
internal enum IsFalling
{
Pointer = 0x198,
Offset = 0x58,
Mask = 0x1000000,
}
/// <summary>
/// reversed from CGUnit_C__GetAura
/// </summary>
internal enum UnitAuras : uint
{
AuraCount1 = 0x1AC8,
AuraCount2 = 0x1AD0,
AuraTable1 = 0x1AD0,
AuraTable2 = 0x1AC8,
AuraSize = 0xA8,
AuraSpellId = 0x88,
AuraStack = 0x39,
TimeLeft = 0x40,
OwnerGUID = 0x20,
AuraTableOffset = 0x00,
AuraFlags = 0x90,
AuraLevel = 0x92,
}
/// <summary>
/// UnitName
/// </summary>
internal enum UnitName : uint
{
ObjectName1 = 0x478,
ObjectName2 = 0xE0,
PlayerNameGUIDOffset = 0x20,
PlayerNameStringOffset = 0x31,
PlayerNameCacheNext = 0x0,
PlayerNameCachePointer = 0x22A8B18,
UnitName1 = 0x17B8,
UnitName2 = 0xE0,
}
/// <summary>
/// UnitSpeed
/// </summary>
internal enum UnitSpeed
{
Pointer1 = 0x198,
Pointer2 = 164,
}
/// <summary>
/// WowObject
/// </summary>
internal enum WowObject
{
X = 0x1600,
Y = X + 0x4,
Z = X + 0x8,
RotationOffset = X + 0x10,
Pitch = X + 0x14,
GameObjectX = 0x1B0,
GameObjectY = GameObjectX + 0x4,
GameObjectZ = GameObjectX + 0x8,
GameObjectRotation = GameObjectX + 0x10,
TransportGUID = 0x15F0,
}
/// <summary>
/// Zone
/// </summary>
internal enum Zone : uint
{
ZoneText = 0x28A1540,
ZoneID = 0x28A15EC ,
SubZoneText = 0x28A1548,
ContinentId = 0x0,
GetContinentIDOffset = 0xE0,
}
/// <summary>
/// UiFrame
/// </summary>
internal enum UiFrame
{
ScrWidth = 0x22A78B4,
ScrHeight = 0x22A78B8,
FrameBase = 0x25C05A8,
CurrentFramePtr = 0x25C05A8,
CurrentFrameOffset = 0x1A0,
FirstFrame = 0xCD0,
NextFrame = 0xCC0,
LastFrame = 0x0CC8,
RegionsFirst = 0x1A8,
RegionsNext = 0x198,
Visible = 0xC8,
Visible1 = 0xA,
Visible2 = 1,
LabelText = 0x188,
Name = 0x20,
FrameBottom = 0x90,
FrameLeft = 0x94,
FrameTop = 0x98,
FrameRight = 0x9C,
EffectiveScale = 0xC0,
ParentFrame = 0xD0,
IconNumber = 0xF0,
ButtonEnabledPointer = 0x210,
ButtonEnabledMask = 0xF,
ButtonChecked = 0x268,
EditBoxText = 0x238,
}
}
}