Code:
pub mod wow_classic_4_4_0_54481 {
pub const CLIENT_VERSION: &str = "4.4.0.54481";
pub struct Addon;
impl Addon {
pub const COUNT: usize = 0x3708C78;
}
pub struct ObjectManagerEntry {
pub next: Pointer64<ObjectManagerEntry>,
pub guid: GUID,
pub address: Pointer64<Object>,
}
impl ObjectManagerEntry {
}
pub struct Player {
pub vmt: Address,
_pad_to_0x10: [u8; 0x8],
pub r#type: u8,
_pad_to_0x18: [u8; 0x7],
pub guid: GUID,
_pad_to_0xDC: [u8; 0xB4],
pub dynamic_flag: u32,
_pad_to_0x148: [u8; 0x68],
pub position: Position,
_pad_to_0x158: [u8; 0x4],
pub rotation: f32,
pub pitch: f32,
_pad_to_0x500: [u8; 0x3A0],
pub unit_info_ptr: Pointer64<UnitInfo>,
pub display_id: u32,
_pad_to_0x6E8: [u8; 0x1DC],
pub cast_id: u32,
_pad_to_0x710: [u8; 0x24],
pub cast_start: u32,
pub cast_end: u32,
pub chan_id: u32,
_pad_to_0x720: [u8; 0x4],
pub chan_start: u32,
pub chan_end: u32,
_pad_to_0x8C0: [u8; 0x198],
pub aura_table_1: Address,
pub aura_table_2: Address,
_pad_to_0xD75D: [u8; 0xCE8D],
pub class: u8,
_pad_to_0xD790: [u8; 0x32],
pub in_combat_flag: u32,
pub unit_flag_one: u32,
_pad_to_0xED88: [u8; 0x15F0],
pub health_current: u32,
_pad_to_0xEEC0: [u8; 0x134],
pub health_max: u32,
_pad_to_0xEF80: [u8; 0xBC],
pub target: GUID,
_pad_to_0xEFB4: [u8; 0x24],
pub race: u8,
_pad_to_0xEFB7: [u8; 0x2],
pub gender: u8,
pub power_type: u8,
_pad_to_0xEFC0: [u8; 0x7],
pub level: u8,
_pad_to_0xEFE4: [u8; 0x23],
pub faction: u32,
_pad_to_0xF010: [u8; 0x28],
pub mount_id: u32,
_pad_to_0xF208: [u8; 0x1F4],
pub power_current: u32,
_pad_to_0xF230: [u8; 0x24],
pub power_max: u32,
_pad_to_0x14000: [u8; 0x4DCC],
pub inventory_count: u32,
}
impl Player {
}
pub struct Globals;
impl Globals {
pub const BAG_GUID: usize = 0x37072C0;
pub const CHAR_SELECT: usize = 0x35E79BD;
pub const CORPSE_POSITION: usize = 0x30F0AE0;
pub const CVAR_BASE: usize = 0x36AFEC8;
pub const DIALOG_WINDOW_OWNER_GUID: usize = 0x335E850;
pub const FOCUS_GUID: usize = 0x335E838;
pub const FRAMESCRIPT_REGISTERFUNC: usize = 0x335DEB8;
pub const GAME_TIME: usize = 0x335E290;
pub const GET_PARTY_INFO_ACTIVE_PARTY: usize = 0x36B08C8;
pub const IN_GAME_STATUS: usize = 0x36AF2B0;
pub const KEY_BINDINGS: usize = 0x30D58D8;
pub const LAST_ENEMY_GUID: usize = 0x335E818;
pub const LAST_FRIENDLY_GUID: usize = 0x335E828;
pub const LAST_TARGET_GUID: usize = 0x335E808;
pub const LOADING_SCREEN: usize = 0x32E1FF8;
pub const LOADING_SCREEN_TAXI_SPLINES: usize = 0x3324F30;
pub const LOGIN_SCREEN: usize = 0x35E8618;
pub const LOOT_WINDOW: usize = 0x36B0B54;
pub const MOUSEOVER_GUID: usize = 0x36AF2B8;
pub const NUM_CHARACTERS: usize = 0x35E79E0;
pub const PET_GUID: usize = 0x36B09D8;
pub const PLAYER_GUID: usize = 0x3597DF0;
pub const PLAYER_NAME: usize = 0x30C1318;
pub const TARGET_GUID: usize = 0x335E7F8;
pub const ZONE_ID: usize = 0x36AF1B0;
}
pub struct Aura {
_pad_to_0x88: [u8; 0x88],
pub spell_id: u32,
_pad_to_0xB0: [u8; 0x24],
pub size: u32,
}
impl Aura {
}
pub struct Keybinding {
_pad_to_0x18: [u8; 0x18],
pub next: Pointer64<Keybinding>,
_pad_to_0x30: [u8; 0x10],
pub key: Pointer64<ReprCString>,
_pad_to_0x40: [u8; 0x8],
pub action: Pointer64<ReprCString>,
}
impl Keybinding {
}
pub struct Keybindings {
_pad_to_0x18: [u8; 0x18],
pub next: Address,
_pad_to_0x30: [u8; 0x10],
pub key: Address,
_pad_to_0x40: [u8; 0x8],
pub action: Address,
}
impl Keybindings {
pub const BASE: usize = 0x30D58D8;
}
pub struct Runes {
pub start_time: u32,
_pad_to_0x20: [u8; 0x1C],
pub end_time: u32,
_pad_to_0x48: [u8; 0x24],
pub default_type: u32,
_pad_to_0x60: [u8; 0x14],
pub rune_type: u32,
}
impl Runes {
pub const BASE: usize = 0x36E41A0;
}
pub struct Actionbar;
impl Actionbar {
pub const CURRENT_PAGE: usize = 0x36BB164;
pub const FIRST_SLOT: usize = 0x36BA960;
}
pub struct UnitInfo {
_pad_to_0x30: [u8; 0x30],
pub r#type: u8,
_pad_to_0x34: [u8; 0x3],
pub family: u8,
_pad_to_0x38: [u8; 0x3],
pub rank: u8,
_pad_to_0xE8: [u8; 0xAF],
pub gather_type: u8,
_pad_to_0x120: [u8; 0x37],
pub name: Pointer64<ReprCString>,
}
impl UnitInfo {
}
pub struct GameObject {
pub vmt: Address,
_pad_to_0x10: [u8; 0x8],
pub r#type: u8,
_pad_to_0x18: [u8; 0x7],
pub guid: GUID,
_pad_to_0xA0: [u8; 0x78],
pub flags: u32,
_pad_to_0x108: [u8; 0x64],
pub position: Position,
_pad_to_0x148: [u8; 0x34],
pub name: Pointer64<GameObjectName>,
_pad_to_0x210: [u8; 0xC0],
pub owner: GUID,
}
impl GameObject {
}
pub struct Unit {
pub vmt: Address,
_pad_to_0x10: [u8; 0x8],
pub r#type: u8,
_pad_to_0x18: [u8; 0x7],
pub guid: GUID,
_pad_to_0xDC: [u8; 0xB4],
pub dynamic_flag: u32,
_pad_to_0x148: [u8; 0x68],
pub position: Position,
_pad_to_0x158: [u8; 0x4],
pub rotation: f32,
pub pitch: f32,
_pad_to_0x500: [u8; 0x3A0],
pub unit_info_ptr: Pointer64<UnitInfo>,
pub display_id: u32,
_pad_to_0x6E8: [u8; 0x1DC],
pub cast_id: u32,
_pad_to_0x710: [u8; 0x24],
pub cast_start: u32,
pub cast_end: u32,
pub chan_id: u32,
_pad_to_0x720: [u8; 0x4],
pub chan_start: u32,
pub chan_end: u32,
_pad_to_0x8C0: [u8; 0x198],
pub aura_table_1: Address,
pub aura_table_2: Address,
_pad_to_0xD75D: [u8; 0xCE8D],
pub class: u8,
_pad_to_0xD790: [u8; 0x32],
pub in_combat_flag: u32,
pub unit_flag_one: u32,
_pad_to_0xED88: [u8; 0x15F0],
pub health_current: u32,
_pad_to_0xEEC0: [u8; 0x134],
pub health_max: u32,
_pad_to_0xEF80: [u8; 0xBC],
pub target: GUID,
_pad_to_0xEFB4: [u8; 0x24],
pub race: u8,
_pad_to_0xEFB7: [u8; 0x2],
pub gender: u8,
pub power_type: u8,
_pad_to_0xEFC0: [u8; 0x7],
pub level: u8,
_pad_to_0xEFE4: [u8; 0x23],
pub faction: u32,
_pad_to_0xF010: [u8; 0x28],
pub mount_id: u32,
_pad_to_0xF208: [u8; 0x1F4],
pub power_current: u32,
_pad_to_0xF230: [u8; 0x24],
pub power_max: u32,
}
impl Unit {
}
pub struct Container {
_pad_to_0x6D8: [u8; 0x6D8],
pub count: u32,
pub items: u32,
}
impl Container {
}
pub struct Cooldown {
pub last_cooldown: Address,
pub next_cooldown: Address,
pub spell_id: u32,
pub item_id: u32,
pub tick_time: u32,
pub recovery_start: u32,
pub recovery_time: u32,
pub category_id: u32,
pub category_start: u32,
pub category_time: u32,
_pad_to_0x38: [u8; 0x8],
pub global_id: u32,
pub global_time: u32,
pub global_start: u32,
}
impl Cooldown {
pub const BASE: usize = 0x30E9450;
}
pub struct Spellbook;
impl Spellbook {
pub const BASE: usize = 0x36AF6C8;
pub const COUNT: usize = 0x36AF6C0;
pub const PET_BASE: usize = 0x36AF6E8;
pub const PET_COUNT: usize = 0x36AF6E0;
}
pub struct Battleground;
impl Battleground {
pub const FINISHED: usize = 0x36B2A68;
pub const INFO: usize = 0x30F9700;
pub const WINNER: usize = 0x36B2A6C;
}
pub struct Item {
pub vmt: Address,
_pad_to_0x10: [u8; 0x8],
pub r#type: u8,
_pad_to_0x18: [u8; 0x7],
pub guid: GUID,
_pad_to_0x150: [u8; 0x128],
pub id: u32,
_pad_to_0x178: [u8; 0x24],
pub owner: GUID,
pub container: GUID,
_pad_to_0x1B8: [u8; 0x20],
pub stack_count: u32,
_pad_to_0x1CC: [u8; 0x10],
pub durability_current: u32,
pub durability_max: u32,
_pad_to_0x1E0: [u8; 0xC],
pub flag: u32,
_pad_to_0x2F4: [u8; 0x110],
pub enchant_id: u32,
pub enchant_expiry: u32,
}
impl Item {
}
pub struct MacroManager;
impl MacroManager {
pub const BASE: usize = 0x30FBCC8;
}
pub struct PlayerNameCache {
_pad_to_0x8: [u8; 0x8],
pub len: u32,
_pad_to_0x10: [u8; 0x4],
pub arr: Address,
}
impl PlayerNameCache {
pub const BASE: usize = 0x32F1C10;
}
pub struct CombatLog;
impl CombatLog {
pub const EVENT_TYPE: usize = 0x35F2EB0;
pub const EVENTS: usize = 0x30EACC0;
}
pub struct GameObjectName {
_pad_to_0xE0: [u8; 0xE0],
pub name: Pointer64<ReprCString>,
}
impl GameObjectName {
}
pub struct Quest;
impl Quest {
pub const BASE: usize = 0x36C2370;
pub const CURRENT: usize = 0x36E5624;
pub const NUM: usize = 0x36C2190;
pub const NUM_CHOICES: usize = 0x36F4C30;
pub const REWARD: usize = 0x36F4C38;
pub const TITLE: usize = 0x36F0770;
}
pub struct Cvar {
_pad_to_0x8: [u8; 0x8],
pub value: Pointer64<ReprCString>,
_pad_to_0x40: [u8; 0x30],
pub desc: Pointer64<ReprCString>,
_pad_to_0x50: [u8; 0x8],
pub key: Pointer64<ReprCString>,
}
impl Cvar {
pub const BASE: usize = 0x36AFEC8;
}
pub struct Screen {
pub width: u16,
pub height: u16,
}
impl Screen {
pub const BASE: usize = 0x30D4AC0;
}
pub struct UnitStats {
_pad_to_0xDA40: [u8; 0xDA40],
pub mainhand_speed: u32,
pub offhand_speed: u32,
pub strength: u32,
pub agility: u32,
pub stamina: u32,
pub intellect: u32,
pub spirit: u32,
_pad_to_0xDA84: [u8; 0x28],
pub armor: u32,
_pad_to_0xDA8C: [u8; 0x4],
pub fire_resistance: u32,
pub nature_resistance: u32,
pub frost_resistance: u32,
pub shadow_resistance: u32,
pub arcane_resistance: u32,
_pad_to_0xF484: [u8; 0x19E4],
pub expertise: f32,
pub block_chance: f32,
_pad_to_0xF494: [u8; 0x8],
pub parry_chance: f32,
_pad_to_0xF49C: [u8; 0x4],
pub melee_crit_chance: f32,
pub ranged_crit_chance: f32,
pub spell_crit_chance: f32,
pub unk_2: f32,
_pad_to_0x10B1C: [u8; 0x1670],
pub defense_rating: u32,
_pad_to_0x10B24: [u8; 0x4],
pub unk_1: f32,
_pad_to_0x10B2C: [u8; 0x4],
pub melee_hit_rating: u32,
pub ranged_hit_rating: u32,
pub spell_hit_rating: u32,
pub melee_crit_rating: u32,
pub ranged_crit_rating: u32,
pub spell_crit_rating: u32,
_pad_to_0x10B50: [u8; 0xC],
pub resilience_defense_rating: u32,
pub resilience_offense_rating: u32,
_pad_to_0x10B5C: [u8; 0x4],
pub melee_haste_rating: u32,
pub ranged_haste_rating: u32,
pub spell_haste_rating: u32,
}
impl UnitStats {
}
pub struct Camera {
_pad_to_0x10: [u8; 0x10],
pub position: Position,
pub matrix: [f32; 0x9],
pub field_of_view: f32,
}
impl Camera {
pub const BASE: usize = 0x35739E0;
pub const OFFSET: usize = 0x3878;
}
pub struct Object {
pub vmt: Address,
_pad_to_0x10: [u8; 0x8],
pub r#type: u8,
_pad_to_0x18: [u8; 0x7],
pub guid: GUID,
}
impl Object {
}
pub struct ObjectManager {
pub max: u32,
_pad_to_0x8: [u8; 0x4],
pub arr: Address,
pub count: u32,
_pad_to_0x60: [u8; 0x4C],
pub zone_name: Pointer64<ReprCString>,
pub subzone_name: Pointer64<ReprCString>,
_pad_to_0x140: [u8; 0xD0],
pub unk_1: u32,
_pad_to_0x160: [u8; 0x1C],
pub map_id: u32,
_pad_to_0x240: [u8; 0xDC],
pub unk_2: u32,
}
impl ObjectManager {
pub const BASE: usize = 0x364F970;
}
pub struct Inventory {
pub equipment_first: u32,
_pad_to_0x110: [u8; 0x10C],
pub equipment_last: u32,
_pad_to_0x1E0: [u8; 0xCC],
pub bag_slot1: u32,
_pad_to_0x1F0: [u8; 0xC],
pub bag_slot2: u32,
_pad_to_0x200: [u8; 0xC],
pub bag_slot3: u32,
_pad_to_0x210: [u8; 0xC],
pub bag_slot4: u32,
_pad_to_0x230: [u8; 0x1C],
pub backpack_first: u32,
_pad_to_0x320: [u8; 0xEC],
pub backpack_last: u32,
_pad_to_0x3B0: [u8; 0x8C],
pub bank_slot_first: u32,
_pad_to_0x560: [u8; 0x1AC],
pub bank_slot_last: u32,
_pad_to_0x570: [u8; 0xC],
pub bank_bag1: u32,
_pad_to_0x580: [u8; 0xC],
pub bank_bag2: u32,
_pad_to_0x590: [u8; 0xC],
pub bank_bag3: u32,
_pad_to_0x5A0: [u8; 0xC],
pub bank_bag4: u32,
_pad_to_0x5B0: [u8; 0xC],
pub bank_bag5: u32,
_pad_to_0x5C0: [u8; 0xC],
pub bank_bag6: u32,
_pad_to_0x5D0: [u8; 0xC],
pub bank_bag7: u32,
}
impl Inventory {
}
pub struct Map;
impl Map {
pub const MINIMAP_SUBZONE_TEXT: usize = 0x36AE508;
pub const SUBZONE_TEXT: usize = 0x36AE500;
pub const ZONE_TEXT: usize = 0x36AE4F8;
}
pub struct ActivePlayer {
pub vmt: Address,
_pad_to_0x10: [u8; 0x8],
pub r#type: u8,
_pad_to_0x18: [u8; 0x7],
pub guid: GUID,
_pad_to_0xDC: [u8; 0xB4],
pub dynamic_flag: u32,
_pad_to_0x148: [u8; 0x68],
pub position: Position,
_pad_to_0x158: [u8; 0x4],
pub rotation: f32,
pub pitch: f32,
_pad_to_0x500: [u8; 0x3A0],
pub unit_info_ptr: Pointer64<UnitInfo>,
pub display_id: u32,
_pad_to_0x6E8: [u8; 0x1DC],
pub cast_id: u32,
_pad_to_0x710: [u8; 0x24],
pub cast_start: u32,
pub cast_end: u32,
pub chan_id: u32,
_pad_to_0x720: [u8; 0x4],
pub chan_start: u32,
pub chan_end: u32,
_pad_to_0x8C0: [u8; 0x198],
pub aura_table_1: Address,
pub aura_table_2: Address,
_pad_to_0xD75D: [u8; 0xCE8D],
pub class: u8,
_pad_to_0xD790: [u8; 0x32],
pub in_combat_flag: u32,
pub unit_flag_one: u32,
_pad_to_0xE668: [u8; 0xED0],
pub xp: u32,
_pad_to_0xED88: [u8; 0x71C],
pub health_current: u32,
_pad_to_0xEEC0: [u8; 0x134],
pub health_max: u32,
_pad_to_0xEF80: [u8; 0xBC],
pub target: GUID,
_pad_to_0xEFB4: [u8; 0x24],
pub race: u8,
_pad_to_0xEFB7: [u8; 0x2],
pub gender: u8,
pub power_type: u8,
_pad_to_0xEFC0: [u8; 0x7],
pub level: u8,
_pad_to_0xEFE4: [u8; 0x23],
pub faction: u32,
_pad_to_0xF010: [u8; 0x28],
pub mount_id: u32,
_pad_to_0xF208: [u8; 0x1F4],
pub power_current: u32,
_pad_to_0xF230: [u8; 0x24],
pub power_max: u32,
_pad_to_0xFF10: [u8; 0xCDC],
pub money: u32,
_pad_to_0xFF24: [u8; 0x10],
pub next_level_xp: u32,
_pad_to_0x14000: [u8; 0x40D8],
pub inventory_count: u32,
}
impl ActivePlayer {
}
}
Enjoy!