Code:
/*
This file is part of LazyBot - Copyright (C) 2011 Arutha
LazyBot is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
LazyBot is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with LazyBot. If not, see <http://www.gnu.org/licenses/>.
*/
#region
using System.Reflection;
#endregion
#if true
namespace LazyLib.Wow
{
[Obfuscation(Feature = "renaming", ApplyToMembers = true)]
public class PublicPointers
{
#region Globals enum
public enum Globals
{
PlayerName = 0xEC2180, // 5.4.7 (17898) (0x2B38 diff)
//PlayerName64 = 0x16041C8, // 5.4.7 (17898) (?? diff)
}
#endregion
#region InGame enum
public enum InGame
{
InGame = 0xD63626, // 5.4.7 (17898) (0x29FA diff)
//InGame64 = 0x149C200, // 5.4.7 (17898) (?? diff)
InstanceSize = 0xD60C50, // 5.4.7 (17898) (0x29FA diff)
//InstanceSize64 = 0xD60C50, // 5.4.7 (17898) (new)
}
#endregion
}
internal class Pointers
{
#region Nested type: ObjectManager
internal enum ObjectManager
{
//CurrentManager = Memory.Read<uint>(Memory.ReadRelative<uint>((uint) Pointers.ObjectManager.CurMgrPointer)
// + (uint) Pointers.ObjectManager.CurMgrOffset);
//LocalGUID = Memory.Read<UInt64>(CurrentManager + (uint) Pointers.ObjectManager.LocalGUID);
CurMgrPointer = 0xEC2140, // 5.4.7 (17898) (0x2B38 diff)
CurMgrOffset = 0x462C, // 5.4.7 (17898) (0x0 diff)
NextObject = 0x34, // 5.4.7 (17898) (0x0 diff)
FirstObject = 0xCC, // 5.4.7 (17898) (0x0 diff)
LocalGUID = 0xE8, // 5.4.7 (17898) (0x0 diff)
}
#endregion
#region Nested type: BMAH
//Note that these are hardcoded into Main.cs for now.
internal enum BMAH
{
ItemCount = 0xE0E270, // 5.4.7 (17898) (0x2CD0 diff)
ItemStart = 0xE0E274, // 5.4.7 (17898) (0x2CD0 diff)
}
#endregion
#region Nested type: Globals
internal enum Globals
{
RedMessage = 0xD62A28, // 5.4.7 (17898) (0x2B18 diff)
MouseOverGUID = 0xD63638, // 5.4.7 (17898) (0x2B18 diff)
LootWindow = 0xDD185C, // 5.4.7 (17898) (0x2CD0 diff)
IsBobbing = 0xCC, // 5.4.7 (17898)
ArchFacing = 0x1BC, // 5.4.7 (17898)
ArchFacingOffset2 = 0x108, // 5.4.7 (17898)
ChatboxIsOpen = 0xBBC4CC, // 5.4.7 (17898) (0x2AE0 diff)
CursorType = 0xD2C068 // 5.4.7 (17898) (0x2B20 diff)
}
#endregion
#region ActionBar enum
public enum ActionBar
{
ActionBarFirstSlot = 0xDD57A8, // 5.4.7 (17898) (0x2CD0 diff)
ActionBarBonus = 0xDD5C30 // 5.4.7 (17898) (0x2CD0 diff)
}
#endregion
#region AutoLoot enum
public enum AutoLoot
{
Offset = 0x30, // 5.4.7 (17898)
Pointer = 0xD63868, // 5.4.7 (17898) (0x2B18 diff)
}
#endregion
#region ClickToMove enum
public enum ClickToMove
{
Offset = 0x30, // 5.4.7 (17898)
Pointer = 0xD63848, // 5.4.7 (17898) (0x1D040 diff)
}
#endregion
#region CgUnitCGetCreatureRank enum
public enum CgUnitCGetCreatureRank
{
Offset1 = 0x9B4, // 5.4.7 (17898)
Offset2 = 0x20, // 5.4.7 (17898)
}
#endregion
#region CgUnitCGetCreatureType enum
public enum CgUnitCGetCreatureType
{
Offset1 = 0x9B4, // 5.4.7 (17898)
Offset2 = 0x18, // 5.4.7 (17898)
}
#endregion
#region CgWorldFrameGetActiveCamera enum
public enum CgWorldFrameGetActiveCamera
{
//return Memory.Read<uint>(Memory.ReadRelative<uint>((uint)Pointers.CgWorldFrameGetActiveCamera.CameraPointer)
// + (uint)Pointers.CgWorldFrameGetActiveCamera.CameraOffset);
CameraX = 0x8, // 5.4.7 (17898)
CameraY = 0xC, // 5.4.7 (17898)
CameraZ = 0x10, // 5.4.7 (17898)
CameraMatrix = 0x14, // 5.4.7 (17898)
CameraPointer = 0xD6296C, // 5.4.7 (17898) (0x2B20 diff)
CameraOffset = 0x8208, // 5.4.7 (17898) (0x00 diff)
}
#endregion
#region Nested type: AutoAttack
internal enum AutoAttack
{
//Shows 0x06 when not wanding, 0x0C or 0x0E when wanding.
AutoAttackFlag = 0xC58, // 5.4.7 (17898)
AutoAttackMask = 0xC5C, // 5.4.7 (17898)
Wanding = 0xC70, // 5.4.7 (17898)
}
#endregion
#region Nested type: CastingInfo
internal enum CastingInfo
{
IsCasting = 0xCB8, // 5.4.7 (17898)
ChanneledCasting = 0xCD0, // 5.4.7 (17898)
}
#endregion
#region Nested type: Chat
internal enum Chat : uint
{
ChatStart = 0xD6546D, // 5.4.7 (17898) (0x2B18 diff)
OffsetToNextMsg = 0x17C8, // 5.4.7 (17898)
}
#endregion
#region BlueChat
internal enum Messages
{
//This is incorrect. I never use it, so haven't updated it.
EventMessage = 0xD9BA38 // 5.0.4 (15929) <--- FIX THIS
}
#endregion
#region Nested type: ComboPoints
internal enum ComboPoints
{
ComboPoints = 0xD63709, // 5.4.7 (17898) (0x2B18 diff)
}
#endregion
#region Nested type: Runes
internal enum Runes
{
RunesOffset = 0xDD4F04, // 5.4.7 (17898) (0x2CD0 diff)
}
#endregion
#region Nested type: Container
internal enum Container
{
//Provided by Charles.
EquippedBagGUID = 0xDD4E40, // 5.4.7 (17898) (0x2CD0 diff) //VALIDATE??
}
#endregion
#region Nested type: KeyBinding
internal enum KeyBinding
{
NumKeyBindings = 0xDC0420, // 5.4.7 (17898) (0x2B28 diff)
First = 0xC8, // 5.4.7 (17898)
Next = 0xC0, // 5.4.7 (17898)
Key = 0x14, // 5.4.7 (17898)
Command = 0x28, // 5.4.7 (17898)
}
#endregion
#region Nested type: Macros
internal enum MacroManager
{
//CurrentManager = Memory.Read<uint>(Memory.ReadRelative<uint>((uint) Pointers.ObjectManager.CurMgrPointer)
// + (uint) Pointers.ObjectManager.CurMgrOffset);
//LocalGUID = Memory.Read<UInt64>(CurrentManager + (uint) Pointers.ObjectManager.LocalGUID);
MacroTable = 0xDD4DF0, // 5.4.7 (17898) (0x2CD0 diff)
GeneralOffset = 0x04, // 5.4.7 (17898)
}
#endregion
#region Nested type: Reaction
internal enum Reaction : uint
{
FactionPointer = FactionStartIndex + 0xC, // 5.4.7 (17898)
FactionTotal = FactionStartIndex - 0x4, // 5.4.7 (17898)
HostileOffset1 = 0x14, // 5.4.7 (17898)
HostileOffset2 = 0x0C, // 5.4.7 (17898)
FriendlyOffset1 = 0x10, // 5.4.7 (17898)
FriendlyOffset2 = 0x0C, // 5.4.7 (17898)
FactionStartIndex = 0xC8867C, // 5.4.7 (17898) (0x2AE0 diff)
}
#endregion
#region Nested type: ShapeshiftForm
internal enum ShapeshiftForm
{
BaseAddressOffset1 = 0xE4, // 5.4.7 (17898)
BaseAddressOffset2 = 0x1E3, // 5.4.7 (17898)
}
#endregion
#region Nested type: SpellCooldown
internal enum SpellCooldown : uint
{
CooldPown = 0xCA0110, // 5.4.7 (17898) (0x2B08 diff)
}
#endregion
#region Nested type: Swimming
internal enum Swimming
{
Pointer = 0xEC, // 5.4.7 (17898)
Offset = 0x38, // 5.4.7 (17898)
Mask = 0x100000, // 5.4.7 (17898)
}
#endregion
#region IsFlying enum
public enum IsFlying
{
Pointer = 0xEC, // 5.4.7 (17898)
Offset = 0x38, // 5.4.7 (17898)
Mask = 0x1000000 // 5.4.7 (17898)
}
#endregion
#region Nested type: UnitAuras
internal enum UnitAuras : uint
{
AuraCount1 = 0x1218, // 5.4.7 (17898)
AuraCount2 = 0xE18, // 5.4.7 (17898)
AuraTable1 = 0xE18, // 5.4.7 (17898)
AuraTable2 = 0xE1C, // 5.4.7 (17898)
AuraSize = 0x40, // 5.4.7 (17898)
AuraSpellId = 0x28, // 5.4.7 (17898)
AuraStack = 0x2D, // 5.4.7 (17898)
TimeLeft = 0x34, // 5.4.7 (17898)
OwnerGUID = 0x20, // 5.4.7 (17898)
}
#endregion
#region Nested type: UnitName
internal enum UnitName : uint
{
ObjectName1 = 0x1C0, // 5.4.7 (17898)
ObjectName2 = 0xB0, // 5.4.7 (17898)
PlayerNameMaskOffset = 0x02c, // 5.4.7 (17898)
PlayerNameBaseOffset = 0x020, // 5.4.7 (17898)
PlayerNameStringOffset = 0x021, // 5.4.7 (17898)
PlayerNameCachePointer = 0xC84358, // 5.4.7 (17898) (0x2AE0 diff)
UnitName1 = 0x9B4, // 5.4.7 (17898)
UnitName2 = 0x6C, // 5.4.7 (17898)
}
#endregion
#region Nested type: UnitSpeed
internal enum UnitSpeed
{
Pointer1 = 0xEC, // 5.4.7 (17898)
Pointer2 = 0x80, // 5.4.7 (17898)
}
#endregion
#region Nested type: WowObject
internal enum WowObject
{
X = 0x838, // 5.4.7 (17898)
Y = X + 0x4, // 5.4.7 (17898)
Z = X + 0x8, // 5.4.7 (17898)
RotationOffset = X + 0x10, // 5.4.7 (17898)
GameObjectX = 0x01F4, // 5.4.7 (17898)
GameObjectY = GameObjectX + 0x4, // 5.4.7 (17898)
GameObjectZ = GameObjectX + 0x8, // 5.4.7 (17898)
GameObjectRotation = GameObjectX + 0x10, // 5.4.7 (17898)
}
#endregion
#region Nested type: Zone
internal enum Zone : uint
{
ZoneText = 0xD6361C, // 5.4.7 (17898) (0x2B18 diff)
ZoneID = 0xD636C4, // 5.4.7 (17898) (0x2B18 diff)
}
#endregion
#region Nested type: UiFrame
internal enum UiFrame
{
//var @base = Memory.ReadRelative<uint>((uint)Pointers.UiFrame.FrameBase);
//var currentFrame = Memory.Read<uint>(@base + (uint)Pointers.UiFrame.FirstFrame);
ScrWidth = 0xADD9D4, // 5.4.7 (17898) (0x3000 diff)
ScrHeight = 0xADD9D8, // 5.4.7 (17898) (0x3000 diff)
FrameBase = 0xBB0798, // 5.4.7 (17898) (0x2AE8 diff)
CurrentFramePtr = 0xBB0798, // 5.4.7 (17898) (0x2AE8 diff)
ButtonEnabledPointer = 0x1F8, // 5.4.7 (17898) <<-- FIX IT
ButtonEnabledMask = 0xF, // 5.4.7 (17898) <<-- FIX IT
ButtonChecked = 0x234, // 5.4.7 (17898) <<-- FIX IT
EditBoxText = 0x214, // 5.4.7 (17898) <<-- FIX IT
FirstFrame = 0xce4, // 5.4.7 (17898) <<-- FIX IT
FrameBottom = 0x68, // 5.4.7 (17898)
FrameLeft = 0x6c, // 5.4.7 (17898)
FrameTop = 0x70, // 5.4.7 (17898)
FrameRight = 0x74, // 5.4.7 (17898)
LabelText = 0xF8, // 5.4.7 (17898)
Name = 0x1C, // 5.4.7 (17898)
NextFrame = 0xCDC, // 5.4.7 (17898) <<-- FIX IT
RegionsFirst = 0x16c, // 5.4.7 (17898) <<-- FIX IT
RegionsNext = 0x164, // 5.4.7 (17898) <<-- FIX IT
Visible = 0x64, // 5.4.7 (17898) <<-- FIX IT
Visible1 = 0x1A, // 5.4.7 (17898) <<-- FIX IT
Visible2 = 1, // 5.4.7 (17898) <<-- FIX IT
CurrentFrameOffset = 0x88, // 5.4.7 (17898) <<-- FIX IT
}
#endregion
}
}
#endif