Code:
pub mod wow_classic_4_4_0_54558 {
use super::*;
pub const CLIENT_VERSION: &str = "4.4.0.54558";
#[repr(C)]
pub struct Actionbar;
impl Actionbar {
pub const CURRENT_PAGE: usize = 0x38A7324;
pub const FIRST_SLOT: usize = 0x38A6B20;
}
#[repr(C)]
pub struct Screen {
pub width: u16,
pub height: u16,
}
impl Screen {
pub const BASE: usize = 0x32C0AC0;
}
#[repr(C)]
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: Pointer<String>,
}
impl UnitInfo {
}
#[repr(C)]
pub struct Aura {
_pad_to_0x88: [u8; 0x88],
pub spell_id: u32,
_pad_to_0xB0: [u8; 0x24],
pub size: u32,
}
impl Aura {
}
#[repr(C)]
pub struct CombatLog;
impl CombatLog {
pub const EVENT_TYPE: usize = 0x37DEF10;
pub const EVENTS: usize = 0x32D6CC0;
}
#[repr(C)]
pub struct Spellbook;
impl Spellbook {
pub const BASE: usize = 0x389B748;
pub const COUNT: usize = 0x389B740;
pub const PET_BASE: usize = 0x389B768;
pub const PET_COUNT: usize = 0x389B760;
}
#[repr(C)]
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: Pointer<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_0xE668: [u8; 0xF0A],
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,
pub in_combat_flag: u32,
pub unit_flag_one: u32,
pub unit_flag_two: u32,
pub unit_flag_three: u32,
_pad_to_0xF010: [u8; 0x18],
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 {
}
#[repr(C)]
pub struct Cvar {
_pad_to_0x8: [u8; 0x8],
pub value: Pointer<String>,
_pad_to_0x40: [u8; 0x30],
pub desc: Pointer<String>,
_pad_to_0x50: [u8; 0x8],
pub key: Pointer<String>,
}
impl Cvar {
pub const BASE: usize = 0x389BF48;
}
#[repr(C)]
pub struct ObjectManagerEntry {
pub next: Pointer<ObjectManagerEntry>,
pub guid: GUID,
pub address: Pointer<Object>,
}
impl ObjectManagerEntry {
}
#[repr(C)]
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: Pointer<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_0xED88: [u8; 0x162A],
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,
pub in_combat_flag: u32,
pub unit_flag_one: u32,
pub unit_flag_two: u32,
pub unit_flag_three: u32,
_pad_to_0xF010: [u8; 0x18],
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 {
}
#[repr(C)]
pub struct GameObjectName {
_pad_to_0xE0: [u8; 0xE0],
pub name: Pointer<String>,
}
impl GameObjectName {
}
#[repr(C)]
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 = 0x34DDC50;
}
#[repr(C)]
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: Pointer<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_0xED88: [u8; 0x162A],
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,
pub in_combat_flag: u32,
pub unit_flag_one: u32,
pub unit_flag_two: u32,
pub unit_flag_three: u32,
_pad_to_0xF010: [u8; 0x18],
pub mount_id: u32,
_pad_to_0xF208: [u8; 0x1F4],
pub power_current: u32,
_pad_to_0xF230: [u8; 0x24],
pub power_max: u32,
}
impl Unit {
}
#[repr(C)]
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 = 0x32D5450;
}
#[repr(C)]
pub struct Map;
impl Map {
pub const MINIMAP_SUBZONE_TEXT: usize = 0x389A588;
pub const SUBZONE_TEXT: usize = 0x389A580;
pub const ZONE_TEXT: usize = 0x389A578;
}
#[repr(C)]
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 = 0x375FA30;
pub const OFFSET: usize = 0x3878;
}
#[repr(C)]
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 {
}
#[repr(C)]
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 {
}
#[repr(C)]
pub struct Keybinding {
_pad_to_0x18: [u8; 0x18],
pub next: Pointer<Keybinding>,
_pad_to_0x30: [u8; 0x10],
pub key: Pointer<String>,
_pad_to_0x40: [u8; 0x8],
pub action: Pointer<String>,
}
impl Keybinding {
}
#[repr(C)]
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 = 0x32C18D8;
}
#[repr(C)]
pub struct Quest;
impl Quest {
pub const BASE: usize = 0x38AE530;
pub const CURRENT: usize = 0x38D17E4;
pub const NUM: usize = 0x38AE350;
pub const NUM_CHOICES: usize = 0x38E0DF0;
pub const REWARD: usize = 0x38E0DF8;
pub const TITLE: usize = 0x38DC930;
}
#[repr(C)]
pub struct Battleground;
impl Battleground {
pub const FINISHED: usize = 0x389EB18;
pub const INFO: usize = 0x32E5700;
pub const WINNER: usize = 0x389EB1C;
}
#[repr(C)]
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 {
}
#[repr(C)]
pub struct Addon;
impl Addon {
pub const COUNT: usize = 0x38F4E38;
}
#[repr(C)]
pub struct Globals;
impl Globals {
pub const BAG_GUID: usize = 0x38F3480;
pub const CHAR_SELECT: usize = 0x37D3A25;
pub const CORPSE_POSITION: usize = 0x32DCAE0;
pub const CVAR_BASE: usize = 0x389BF48;
pub const DIALOG_WINDOW_OWNER_GUID: usize = 0x354A890;
pub const FOCUS_GUID: usize = 0x354A878;
pub const FRAMESCRIPT_REGISTERFUNC: usize = 0x3549EF8;
pub const GAME_TIME: usize = 0x354A2D0;
pub const GET_PARTY_INFO_ACTIVE_PARTY: usize = 0x389C948;
pub const IN_GAME_STATUS: usize = 0x389B330;
pub const KEY_BINDINGS: usize = 0x32C18D8;
pub const LAST_ENEMY_GUID: usize = 0x354A858;
pub const LAST_FRIENDLY_GUID: usize = 0x354A868;
pub const LAST_TARGET_GUID: usize = 0x354A848;
pub const LOADING_SCREEN: usize = 0x34CE038;
pub const LOADING_SCREEN_TAXI_SPLINES: usize = 0x3510F70;
pub const LOGIN_SCREEN: usize = 0x37D4678;
pub const LOOT_WINDOW: usize = 0x389CBD4;
pub const MOUSEOVER_GUID: usize = 0x389B338;
pub const NUM_CHARACTERS: usize = 0x37D3A48;
pub const PET_GUID: usize = 0x389CA58;
pub const PLAYER_GUID: usize = 0x3783E50;
pub const PLAYER_NAME: usize = 0x32AD318;
pub const TARGET_GUID: usize = 0x354A838;
pub const ZONE_ID: usize = 0x389B230;
}
#[repr(C)]
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: Pointer<GameObjectName>,
_pad_to_0x210: [u8; 0xC0],
pub owner: GUID,
}
impl GameObject {
}
#[repr(C)]
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 {
}
#[repr(C)]
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: Pointer<String>,
pub subzone_name: Pointer<String>,
_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 = 0x383B9E0;
}
#[repr(C)]
pub struct Container {
_pad_to_0x6D8: [u8; 0x6D8],
pub count: u32,
pub items: u32,
}
impl Container {
}
#[repr(C)]
pub struct MacroManager;
impl MacroManager {
pub const BASE: usize = 0x32E7CC8;
}
#[repr(C)]
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 = 0x38D0360;
}
}