MovementBlock

Client Version 1.12

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/gameobject/smsg_update_object.wowm:83.

struct MovementBlock {
    UpdateFlag update_flag;
    if (update_flag & LIVING) {
        MovementFlags flags;
        u32 timestamp;
        Vector3d living_position;
        f32 living_orientation;
        if (flags & ON_TRANSPORT) {
            PackedGuid transport_guid;
            Vector3d transport_position;
            f32 transport_orientation;
        }
        if (flags & SWIMMING) {
            f32 pitch;
        }
        f32 fall_time;
        if (flags & JUMPING) {
            f32 z_speed;
            f32 cos_angle;
            f32 sin_angle;
            f32 xy_speed;
        }
        if (flags & SPLINE_ELEVATION) {
            f32 spline_elevation;
        }
        f32 walking_speed;
        f32 running_speed;
        f32 backwards_running_speed;
        f32 swimming_speed;
        f32 backwards_swimming_speed;
        f32 turn_rate;
        if (flags & SPLINE_ENABLED) {
            SplineFlag spline_flags;
            if (spline_flags & FINAL_ANGLE) {
                f32 angle;
            }
            else if (spline_flags & FINAL_TARGET) {
                u64 target;
            }
            else if (spline_flags & FINAL_POINT) {
                Vector3d spline_final_point;
            }
            u32 time_passed;
            u32 duration;
            u32 id;
            u32 amount_of_nodes;
            Vector3d[amount_of_nodes] nodes;
            Vector3d final_node;
        }
    }
    else if (update_flag & HAS_POSITION) {
        Vector3d position;
        f32 orientation;
    }
    if (update_flag & HIGH_GUID) {
        u32 unknown0;
    }
    if (update_flag & ALL) {
        u32 unknown1;
    }
    if (update_flag & MELEE_ATTACKING) {
        PackedGuid guid;
    }
    if (update_flag & TRANSPORT) {
        u32 transport_progress_in_ms;
    }
}

Used in:

Client Version 2.4.3

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/gameobject/smsg_update_object_2_4_3.wowm:14.

struct MovementBlock {
    UpdateFlag update_flag;
    if (update_flag & LIVING) {
        MovementFlags flags;
        u8 extra_flags;
        u32 timestamp;
        Vector3d living_position;
        f32 living_orientation;
        if (flags & ON_TRANSPORT) {
            TransportInfo transport;
        }
        if (flags & SWIMMING) {
            f32 pitch1;
        }
        else if (flags & ONTRANSPORT) {
            f32 pitch2;
        }
        f32 fall_time;
        if (flags & JUMPING) {
            f32 z_speed;
            f32 cos_angle;
            f32 sin_angle;
            f32 xy_speed;
        }
        if (flags & SPLINE_ELEVATION) {
            f32 spline_elevation;
        }
        f32 walking_speed;
        f32 running_speed;
        f32 backwards_running_speed;
        f32 swimming_speed;
        f32 flying_speed;
        f32 backwards_flying_speed;
        f32 backwards_swimming_speed;
        f32 turn_rate;
        if (flags & SPLINE_ENABLED) {
            SplineFlag spline_flags;
            if (spline_flags & FINAL_ANGLE) {
                f32 angle;
            }
            else if (spline_flags & FINAL_TARGET) {
                Guid target;
            }
            else if (spline_flags & FINAL_POINT) {
                Vector3d spline_final_point;
            }
            u32 time_passed;
            u32 duration;
            u32 id;
            u32 amount_of_nodes;
            Vector3d[amount_of_nodes] nodes;
            Vector3d final_node;
        }
    }
    else if (update_flag & HAS_POSITION) {
        Vector3d position;
        f32 orientation;
    }
    if (update_flag & HIGH_GUID) {
        u32 unknown0;
        u32 unknown1;
    }
    if (update_flag & ALL) {
        u32 unknown2;
    }
    if (update_flag & MELEE_ATTACKING) {
        PackedGuid guid;
    }
    if (update_flag & TRANSPORT) {
        u32 transport_progress_in_ms;
    }
}

Used in:

Client Version 3.3.5

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:72.

struct MovementBlock {
    UpdateFlag update_flag;
    if (update_flag & LIVING) {
        MovementFlags flags;
        u32 timestamp;
        Vector3d position;
        f32 orientation;
        if (flags & ON_TRANSPORT_AND_INTERPOLATED_MOVEMENT) {
            TransportInfo transport_info;
            u32 transport_time;
        }
        else if (flags & ON_TRANSPORT) {
            TransportInfo transport;
        }
        if (flags & SWIMMING) {
            f32 pitch1;
        }
        else if (flags & FLYING) {
            f32 pitch2;
        }
        else if (flags & ALWAYS_ALLOW_PITCHING) {
            f32 pitch3;
        }
        f32 fall_time;
        if (flags & FALLING) {
            f32 z_speed;
            f32 cos_angle;
            f32 sin_angle;
            f32 xy_speed;
        }
        if (flags & SPLINE_ELEVATION) {
            f32 spline_elevation;
        }
        f32 walking_speed;
        f32 running_speed;
        f32 backwards_running_speed;
        f32 swimming_speed;
        f32 backwards_swimming_speed;
        f32 flight_speed;
        f32 backwards_flight_speed;
        f32 turn_rate;
        f32 pitch_rate;
        if (flags & SPLINE_ENABLED) {
            SplineFlag spline_flags;
            if (spline_flags & FINAL_ANGLE) {
                f32 angle;
            }
            else if (spline_flags & FINAL_TARGET) {
                u64 target;
            }
            else if (spline_flags & FINAL_POINT) {
                Vector3d spline_final_point;
            }
            u32 time_passed;
            u32 duration;
            u32 id;
            f32 duration_mod;
            f32 duration_mod_next;
            f32 vertical_acceleration;
            f32 effect_start_time;
            u32 amount_of_nodes;
            Vector3d[amount_of_nodes] nodes;
            u8 mode;
            Vector3d final_node;
        }
    }
    else if (update_flag & POSITION) {
        PackedGuid transport_guid;
        Vector3d position1;
        Vector3d transport_offset;
        f32 orientation1;
        f32 corpse_orientation;
    }
    else if (update_flag & HAS_POSITION) {
        Vector3d position2;
        f32 orientation2;
    }
    if (update_flag & HIGH_GUID) {
        u32 unknown0;
    }
    if (update_flag & LOW_GUID) {
        u32 unknown1;
    }
    if (update_flag & HAS_ATTACKING_TARGET) {
        PackedGuid guid;
    }
    if (update_flag & TRANSPORT) {
        u32 transport_progress_in_ms;
    }
    if (update_flag & VEHICLE) {
        u32 vehicle_id;
        f32 vehicle_orientation;
    }
    if (update_flag & ROTATION) {
        u64 packed_local_rotation;
    }
}

Used in: