From db051bf33ac723320e95db96e7b2c4e29ad928c6 Mon Sep 17 00:00:00 2001 From: Lucas Jones Date: Mon, 15 Jul 2024 19:50:01 +0000 Subject: [PATCH] Added missing fields for MovementBlock --- intermediate_representation.json | 1607 +++++++++++++++-- .../gameobject/smsg_update_object_3_3_5.wowm | 64 +- wow_world_base/src/inner/wrath/object_type.rs | 2 +- wow_world_base/src/inner/wrath/spline_flag.rs | 664 +++---- .../src/world/wrath/movement_block.rs | 507 ++---- wow_world_messages/src/world/wrath/object.rs | 2 +- .../wrath/smsg_compressed_update_object.rs | 42 + .../src/world/wrath/smsg_monster_move.rs | 448 ++--- .../wrath/smsg_monster_move_transport.rs | 448 ++--- .../src/world/wrath/smsg_update_object.rs | 8 +- wowm_language/src/docs/movementblock.md | 8 +- wowm_language/src/docs/object.md | 2 +- wowm_language/src/docs/objecttype.md | 2 +- wowm_language/src/docs/smsg_update_object.md | 2 +- wowm_language/src/docs/splineflag.md | 100 +- 15 files changed, 2284 insertions(+), 1622 deletions(-) diff --git a/intermediate_representation.json b/intermediate_representation.json index e22f21f78f..4bd4813dce 100644 --- a/intermediate_representation.json +++ b/intermediate_representation.json @@ -44342,72 +44342,6 @@ }, { "name": "DONE", - "value": { - "value": "1", - "original_string": "0x00000001" - }, - "tags": {} - }, - { - "name": "FALLING", - "value": { - "value": "2", - "original_string": "0x00000002" - }, - "tags": { - "comment": "vmangos: Affects elevation computation" - } - }, - { - "name": "UNKNOWN3", - "value": { - "value": "4", - "original_string": "0x00000004" - }, - "tags": {} - }, - { - "name": "UNKNOWN4", - "value": { - "value": "8", - "original_string": "0x00000008" - }, - "tags": {} - }, - { - "name": "UNKNOWN5", - "value": { - "value": "16", - "original_string": "0x00000010" - }, - "tags": {} - }, - { - "name": "UNKNOWN6", - "value": { - "value": "32", - "original_string": "0x00000020" - }, - "tags": {} - }, - { - "name": "UNKNOWN7", - "value": { - "value": "64", - "original_string": "0x00000040" - }, - "tags": {} - }, - { - "name": "UNKNOWN8", - "value": { - "value": "128", - "original_string": "0x00000080" - }, - "tags": {} - }, - { - "name": "RUNMODE", "value": { "value": "256", "original_string": "0x00000100" @@ -44415,13 +44349,13 @@ "tags": {} }, { - "name": "FLYING", + "name": "FALLING", "value": { "value": "512", "original_string": "0x00000200" }, "tags": { - "comment": "vmangos: Smooth movement(Catmullrom interpolation mode), flying animation" + "comment": "vmangos: Affects elevation computation" } }, { @@ -44441,7 +44375,7 @@ "tags": {} }, { - "name": "UNKNOWN13", + "name": "WALK_MODE", "value": { "value": "4096", "original_string": "0x00001000" @@ -44449,7 +44383,7 @@ "tags": {} }, { - "name": "UNKNOWN14", + "name": "FLYING", "value": { "value": "8192", "original_string": "0x00002000" @@ -44457,7 +44391,7 @@ "tags": {} }, { - "name": "UNKNOWN15", + "name": "ORIENTATION_FIXED", "value": { "value": "16384", "original_string": "0x00004000" @@ -44465,7 +44399,7 @@ "tags": {} }, { - "name": "UNKNOWN16", + "name": "FINAL_POINT", "value": { "value": "32768", "original_string": "0x00008000" @@ -44473,7 +44407,7 @@ "tags": {} }, { - "name": "FINAL_POINT", + "name": "FINAL_TARGET", "value": { "value": "65536", "original_string": "0x00010000" @@ -44481,7 +44415,7 @@ "tags": {} }, { - "name": "FINAL_TARGET", + "name": "FINAL_ANGLE", "value": { "value": "131072", "original_string": "0x00020000" @@ -44489,41 +44423,43 @@ "tags": {} }, { - "name": "FINAL_ANGLE", + "name": "CATMULLROM", "value": { "value": "262144", "original_string": "0x00040000" }, - "tags": {} + "tags": { + "comment": "azerothcore: Used Catmullrom interpolation mode" + } }, { - "name": "UNKNOWN19", + "name": "CYCLIC", "value": { "value": "524288", "original_string": "0x00080000" }, "tags": { - "comment": "vmangos: exists, but unknown what it does" + "comment": "azerothcore: Movement by cycled spline" } }, { - "name": "CYCLIC", + "name": "ENTER_CYCLE", "value": { "value": "1048576", "original_string": "0x00100000" }, "tags": { - "comment": "vmangos: Movement by cycled spline" + "comment": "azerothcore: Everytimes appears with cyclic flag in monster move packet, erases first spline vertex after first cycle done" } }, { - "name": "ENTER_CYCLE", + "name": "ANIMATION", "value": { "value": "2097152", "original_string": "0x00200000" }, "tags": { - "comment": "vmangos: Everytimes appears with cyclic flag in monster move packet, erases first spline vertex after first cycle done" + "comment": "azerothcore: Plays animation after some time passed" } }, { @@ -44537,7 +44473,7 @@ } }, { - "name": "UNKNOWN23", + "name": "TRANSPORT_ENTER", "value": { "value": "8388608", "original_string": "0x00800000" @@ -44545,7 +44481,7 @@ "tags": {} }, { - "name": "UNKNOWN24", + "name": "TRANSPORT_EXIT", "value": { "value": "16777216", "original_string": "0x01000000" @@ -44553,7 +44489,7 @@ "tags": {} }, { - "name": "UNKNOWN25", + "name": "UNKNOWN7", "value": { "value": "33554432", "original_string": "0x02000000" @@ -44563,7 +44499,7 @@ } }, { - "name": "UNKNOWN26", + "name": "UNKNOWN8", "value": { "value": "67108864", "original_string": "0x04000000" @@ -44571,7 +44507,7 @@ "tags": {} }, { - "name": "UNKNOWN27", + "name": "ORIENTATION_INVERSED", "value": { "value": "134217728", "original_string": "0x08000000" @@ -44579,7 +44515,7 @@ "tags": {} }, { - "name": "UNKNOWN28", + "name": "UNKNOWN10", "value": { "value": "268435456", "original_string": "0x10000000" @@ -44587,7 +44523,7 @@ "tags": {} }, { - "name": "UNKNOWN29", + "name": "UNKNOWN11", "value": { "value": "536870912", "original_string": "0x20000000" @@ -44595,7 +44531,7 @@ "tags": {} }, { - "name": "UNKNOWN30", + "name": "UNKNOWN12", "value": { "value": "1073741824", "original_string": "0x40000000" @@ -44603,7 +44539,7 @@ "tags": {} }, { - "name": "UNKNOWN31", + "name": "UNKNOWN13", "value": { "value": "2147483648", "original_string": "0x80000000" @@ -44645,7 +44581,7 @@ "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", "start_position": 26, - "end_position": 69 + "end_position": 61 } }, { @@ -158958,8 +158894,8 @@ ], "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", - "start_position": 69, - "end_position": 80 + "start_position": 61, + "end_position": 72 } }, { @@ -230009,6 +229945,62 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod_next", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "vertical_acceleration", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "effect_start_time", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -230136,6 +230128,21 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "mode", + "data_type": { + "data_type_tag": "Integer", + "integer_type": "U8" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -230379,6 +230386,110 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "transport_offset", + "data_type": { + "data_type_tag": "Struct", + "struct_data": { + "name": "Vector3d", + "object_type": { + "container_type_tag": "Struct" + }, + "sizes": { + "constant_sized": true, + "minimum_size": 12, + "maximum_size": 12 + }, + "members": [ + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "x", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "y", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "z", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + } + ], + "tags": { + "version": { + "version_type_tag": "world", + "version_type": { + "world_version_tag": "all" + } + } + }, + "tests": [], + "file_info": { + "file_name": "wow_message_parser/wowm/world/vector.wowm", + "start_position": 4, + "end_position": 10 + }, + "only_has_io_error": true, + "has_manual_size_field": false, + "manual_size_subtraction": null, + "prepared_objects": [ + { + "name": "x", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "y", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "z", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + } + ], + "optional": null + } + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -230820,8 +230931,8 @@ "tests": [], "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", - "start_position": 80, - "end_position": 178 + "start_position": 72, + "end_position": 176 }, "only_has_io_error": false, "has_manual_size_field": false, @@ -230953,6 +231064,21 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "duration_mod", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "duration_mod_next", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "effect_start_time", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "final_node", "is_elseif_flag": false, @@ -230963,6 +231089,11 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "mode", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "nodes", "is_elseif_flag": false, @@ -231011,6 +231142,11 @@ "name": "time_passed", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "vertical_acceleration", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ], "SWIMMING": [ @@ -231115,6 +231251,11 @@ "name": "transport_guid", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "transport_offset", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ] }, @@ -243702,6 +243843,62 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod_next", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "vertical_acceleration", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "effect_start_time", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -243829,6 +244026,21 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "mode", + "data_type": { + "data_type_tag": "Integer", + "integer_type": "U8" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -244072,6 +244284,110 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "transport_offset", + "data_type": { + "data_type_tag": "Struct", + "struct_data": { + "name": "Vector3d", + "object_type": { + "container_type_tag": "Struct" + }, + "sizes": { + "constant_sized": true, + "minimum_size": 12, + "maximum_size": 12 + }, + "members": [ + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "x", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "y", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "z", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + } + ], + "tags": { + "version": { + "version_type_tag": "world", + "version_type": { + "world_version_tag": "all" + } + } + }, + "tests": [], + "file_info": { + "file_name": "wow_message_parser/wowm/world/vector.wowm", + "start_position": 4, + "end_position": 10 + }, + "only_has_io_error": true, + "has_manual_size_field": false, + "manual_size_subtraction": null, + "prepared_objects": [ + { + "name": "x", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "y", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "z", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + } + ], + "optional": null + } + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -244513,8 +244829,8 @@ "tests": [], "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", - "start_position": 80, - "end_position": 178 + "start_position": 72, + "end_position": 176 }, "only_has_io_error": false, "has_manual_size_field": false, @@ -244646,6 +244962,21 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "duration_mod", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "duration_mod_next", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "effect_start_time", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "final_node", "is_elseif_flag": false, @@ -244656,6 +244987,11 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "mode", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "nodes", "is_elseif_flag": false, @@ -244704,6 +245040,11 @@ "name": "time_passed", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "vertical_acceleration", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ], "SWIMMING": [ @@ -244808,6 +245149,11 @@ "name": "transport_guid", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "transport_offset", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ] }, @@ -246259,6 +246605,62 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod_next", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "vertical_acceleration", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "effect_start_time", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -246386,6 +246788,21 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "mode", + "data_type": { + "data_type_tag": "Integer", + "integer_type": "U8" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -246629,6 +247046,110 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "transport_offset", + "data_type": { + "data_type_tag": "Struct", + "struct_data": { + "name": "Vector3d", + "object_type": { + "container_type_tag": "Struct" + }, + "sizes": { + "constant_sized": true, + "minimum_size": 12, + "maximum_size": 12 + }, + "members": [ + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "x", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "y", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "z", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + } + ], + "tags": { + "version": { + "version_type_tag": "world", + "version_type": { + "world_version_tag": "all" + } + } + }, + "tests": [], + "file_info": { + "file_name": "wow_message_parser/wowm/world/vector.wowm", + "start_position": 4, + "end_position": 10 + }, + "only_has_io_error": true, + "has_manual_size_field": false, + "manual_size_subtraction": null, + "prepared_objects": [ + { + "name": "x", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "y", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "z", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + } + ], + "optional": null + } + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -247070,8 +247591,8 @@ "tests": [], "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", - "start_position": 80, - "end_position": 178 + "start_position": 72, + "end_position": 176 }, "only_has_io_error": false, "has_manual_size_field": false, @@ -247203,6 +247724,21 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "duration_mod", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "duration_mod_next", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "effect_start_time", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "final_node", "is_elseif_flag": false, @@ -247213,6 +247749,11 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "mode", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "nodes", "is_elseif_flag": false, @@ -247261,6 +247802,11 @@ "name": "time_passed", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "vertical_acceleration", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ], "SWIMMING": [ @@ -247365,6 +247911,11 @@ "name": "transport_guid", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "transport_offset", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ] }, @@ -247536,8 +248087,8 @@ "tests": [], "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", - "start_position": 178, - "end_position": 201 + "start_position": 176, + "end_position": 199 }, "only_has_io_error": false, "has_manual_size_field": false, @@ -312265,6 +312816,62 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod_next", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "vertical_acceleration", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "effect_start_time", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -312392,6 +312999,21 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "mode", + "data_type": { + "data_type_tag": "Integer", + "integer_type": "U8" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -312635,6 +313257,110 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "transport_offset", + "data_type": { + "data_type_tag": "Struct", + "struct_data": { + "name": "Vector3d", + "object_type": { + "container_type_tag": "Struct" + }, + "sizes": { + "constant_sized": true, + "minimum_size": 12, + "maximum_size": 12 + }, + "members": [ + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "x", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "y", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "z", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + } + ], + "tags": { + "version": { + "version_type_tag": "world", + "version_type": { + "world_version_tag": "all" + } + } + }, + "tests": [], + "file_info": { + "file_name": "wow_message_parser/wowm/world/vector.wowm", + "start_position": 4, + "end_position": 10 + }, + "only_has_io_error": true, + "has_manual_size_field": false, + "manual_size_subtraction": null, + "prepared_objects": [ + { + "name": "x", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "y", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "z", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + } + ], + "optional": null + } + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -313076,8 +313802,8 @@ "tests": [], "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", - "start_position": 80, - "end_position": 178 + "start_position": 72, + "end_position": 176 }, "only_has_io_error": false, "has_manual_size_field": false, @@ -313209,6 +313935,21 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "duration_mod", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "duration_mod_next", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "effect_start_time", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "final_node", "is_elseif_flag": false, @@ -313219,6 +313960,11 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "mode", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "nodes", "is_elseif_flag": false, @@ -313267,6 +314013,11 @@ "name": "time_passed", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "vertical_acceleration", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ], "SWIMMING": [ @@ -313371,6 +314122,11 @@ "name": "transport_guid", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "transport_offset", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ] }, @@ -314822,6 +315578,62 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod_next", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "vertical_acceleration", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "effect_start_time", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -314949,6 +315761,21 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "mode", + "data_type": { + "data_type_tag": "Integer", + "integer_type": "U8" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -315192,6 +316019,110 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "transport_offset", + "data_type": { + "data_type_tag": "Struct", + "struct_data": { + "name": "Vector3d", + "object_type": { + "container_type_tag": "Struct" + }, + "sizes": { + "constant_sized": true, + "minimum_size": 12, + "maximum_size": 12 + }, + "members": [ + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "x", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "y", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "z", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + } + ], + "tags": { + "version": { + "version_type_tag": "world", + "version_type": { + "world_version_tag": "all" + } + } + }, + "tests": [], + "file_info": { + "file_name": "wow_message_parser/wowm/world/vector.wowm", + "start_position": 4, + "end_position": 10 + }, + "only_has_io_error": true, + "has_manual_size_field": false, + "manual_size_subtraction": null, + "prepared_objects": [ + { + "name": "x", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "y", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "z", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + } + ], + "optional": null + } + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -315633,8 +316564,8 @@ "tests": [], "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", - "start_position": 80, - "end_position": 178 + "start_position": 72, + "end_position": 176 }, "only_has_io_error": false, "has_manual_size_field": false, @@ -315766,6 +316697,21 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "duration_mod", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "duration_mod_next", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "effect_start_time", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "final_node", "is_elseif_flag": false, @@ -315776,6 +316722,11 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "mode", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "nodes", "is_elseif_flag": false, @@ -315824,6 +316775,11 @@ "name": "time_passed", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "vertical_acceleration", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ], "SWIMMING": [ @@ -315928,6 +316884,11 @@ "name": "transport_guid", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "transport_offset", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ] }, @@ -316099,8 +317060,8 @@ "tests": [], "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", - "start_position": 178, - "end_position": 201 + "start_position": 176, + "end_position": 199 }, "only_has_io_error": false, "has_manual_size_field": false, @@ -316679,15 +317640,15 @@ }, "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", - "start_position": 206, - "end_position": 293 + "start_position": 204, + "end_position": 291 } } ], "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", - "start_position": 201, - "end_position": 206 + "start_position": 199, + "end_position": 204 }, "only_has_io_error": false, "has_manual_size_field": false, @@ -535807,6 +536768,62 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod_next", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "vertical_acceleration", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "effect_start_time", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -535934,6 +536951,21 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "mode", + "data_type": { + "data_type_tag": "Integer", + "integer_type": "U8" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -536177,6 +537209,110 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "transport_offset", + "data_type": { + "data_type_tag": "Struct", + "struct_data": { + "name": "Vector3d", + "object_type": { + "container_type_tag": "Struct" + }, + "sizes": { + "constant_sized": true, + "minimum_size": 12, + "maximum_size": 12 + }, + "members": [ + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "x", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "y", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "z", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + } + ], + "tags": { + "version": { + "version_type_tag": "world", + "version_type": { + "world_version_tag": "all" + } + } + }, + "tests": [], + "file_info": { + "file_name": "wow_message_parser/wowm/world/vector.wowm", + "start_position": 4, + "end_position": 10 + }, + "only_has_io_error": true, + "has_manual_size_field": false, + "manual_size_subtraction": null, + "prepared_objects": [ + { + "name": "x", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "y", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "z", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + } + ], + "optional": null + } + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -536618,8 +537754,8 @@ "tests": [], "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", - "start_position": 80, - "end_position": 178 + "start_position": 72, + "end_position": 176 }, "only_has_io_error": false, "has_manual_size_field": false, @@ -536751,6 +537887,21 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "duration_mod", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "duration_mod_next", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "effect_start_time", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "final_node", "is_elseif_flag": false, @@ -536761,6 +537912,11 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "mode", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "nodes", "is_elseif_flag": false, @@ -536809,6 +537965,11 @@ "name": "time_passed", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "vertical_acceleration", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ], "SWIMMING": [ @@ -536913,6 +538074,11 @@ "name": "transport_guid", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "transport_offset", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ] }, @@ -538364,6 +539530,62 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "duration_mod_next", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "vertical_acceleration", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "effect_start_time", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -538491,6 +539713,21 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "mode", + "data_type": { + "data_type_tag": "Integer", + "integer_type": "U8" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -538734,6 +539971,110 @@ "tags": {} } }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "transport_offset", + "data_type": { + "data_type_tag": "Struct", + "struct_data": { + "name": "Vector3d", + "object_type": { + "container_type_tag": "Struct" + }, + "sizes": { + "constant_sized": true, + "minimum_size": 12, + "maximum_size": 12 + }, + "members": [ + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "x", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "y", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, + { + "struct_member_tag": "Definition", + "struct_member_content": { + "name": "z", + "data_type": { + "data_type_tag": "FloatingPoint" + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + } + ], + "tags": { + "version": { + "version_type_tag": "world", + "version_type": { + "world_version_tag": "all" + } + } + }, + "tests": [], + "file_info": { + "file_name": "wow_message_parser/wowm/world/vector.wowm", + "start_position": 4, + "end_position": 10 + }, + "only_has_io_error": true, + "has_manual_size_field": false, + "manual_size_subtraction": null, + "prepared_objects": [ + { + "name": "x", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "y", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "z", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + } + ], + "optional": null + } + }, + "constant_value": null, + "used_as_size_in": null, + "size_of_fields_before_size": null, + "used_in_if": false, + "tags": {} + } + }, { "struct_member_tag": "Definition", "struct_member_content": { @@ -539175,8 +540516,8 @@ "tests": [], "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", - "start_position": 80, - "end_position": 178 + "start_position": 72, + "end_position": 176 }, "only_has_io_error": false, "has_manual_size_field": false, @@ -539308,6 +540649,21 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "duration_mod", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "duration_mod_next", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, + { + "name": "effect_start_time", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "final_node", "is_elseif_flag": false, @@ -539318,6 +540674,11 @@ "is_elseif_flag": false, "enum_part_of_separate_statements": false }, + { + "name": "mode", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false + }, { "name": "nodes", "is_elseif_flag": false, @@ -539366,6 +540727,11 @@ "name": "time_passed", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "vertical_acceleration", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ], "SWIMMING": [ @@ -539470,6 +540836,11 @@ "name": "transport_guid", "is_elseif_flag": false, "enum_part_of_separate_statements": false + }, + { + "name": "transport_offset", + "is_elseif_flag": false, + "enum_part_of_separate_statements": false } ] }, @@ -539641,8 +541012,8 @@ "tests": [], "file_info": { "file_name": "wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm", - "start_position": 178, - "end_position": 201 + "start_position": 176, + "end_position": 199 }, "only_has_io_error": false, "has_manual_size_field": false, diff --git a/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm b/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm index d3037e8800..327f50be1d 100644 --- a/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm +++ b/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm @@ -25,45 +25,37 @@ flag UpdateFlag : u16 { flag SplineFlag : u32 { NONE = 0x00000000; - DONE = 0x00000001; + DONE = 0x00000100; /// vmangos: Affects elevation computation - FALLING = 0x00000002; - UNKNOWN3 = 0x00000004; - UNKNOWN4 = 0x00000008; - UNKNOWN5 = 0x00000010; - UNKNOWN6 = 0x00000020; - UNKNOWN7 = 0x00000040; - UNKNOWN8 = 0x00000080; - RUNMODE = 0x00000100; - /// vmangos: Smooth movement(Catmullrom interpolation mode), flying animation - FLYING = 0x00000200; + FALLING = 0x00000200; NO_SPLINE = 0x00000400; PARABOLIC = 0x00000800; - UNKNOWN13 = 0x00001000; - UNKNOWN14 = 0x00002000; - UNKNOWN15 = 0x00004000; - UNKNOWN16 = 0x00008000; - FINAL_POINT = 0x00010000; - FINAL_TARGET = 0x00020000; - FINAL_ANGLE = 0x00040000; - /// vmangos: exists, but unknown what it does - UNKNOWN19 = 0x00080000; - /// vmangos: Movement by cycled spline - CYCLIC = 0x00100000; - /// vmangos: Everytimes appears with cyclic flag in monster move packet, erases first spline vertex after first cycle done - ENTER_CYCLE = 0x00200000; + WALK_MODE = 0x00001000; + FLYING = 0x00002000; + ORIENTATION_FIXED = 0x00004000; + FINAL_POINT = 0x00008000; + FINAL_TARGET = 0x00010000; + FINAL_ANGLE = 0x00020000; + /// azerothcore: Used Catmullrom interpolation mode + CATMULLROM = 0x00040000; + /// azerothcore: Movement by cycled spline + CYCLIC = 0x00080000; + /// azerothcore: Everytimes appears with cyclic flag in monster move packet, erases first spline vertex after first cycle done + ENTER_CYCLE = 0x00100000; + /// azerothcore: Plays animation after some time passed + ANIMATION = 0x00200000; /// vmangos: Will never arrive FROZEN = 0x00400000; - UNKNOWN23 = 0x00800000; - UNKNOWN24 = 0x01000000; + TRANSPORT_ENTER = 0x00800000; + TRANSPORT_EXIT = 0x01000000; /// vmangos: exists, but unknown what it does - UNKNOWN25 = 0x02000000; - UNKNOWN26 = 0x04000000; - UNKNOWN27 = 0x08000000; - UNKNOWN28 = 0x10000000; - UNKNOWN29 = 0x20000000; - UNKNOWN30 = 0x40000000; - UNKNOWN31 = 0x80000000; + UNKNOWN7 = 0x02000000; + UNKNOWN8 = 0x04000000; + ORIENTATION_INVERSED = 0x08000000; + UNKNOWN10 = 0x10000000; + UNKNOWN11 = 0x20000000; + UNKNOWN12 = 0x40000000; + UNKNOWN13 = 0x80000000; } enum ObjectType : u8 { @@ -137,14 +129,20 @@ struct MovementBlock { 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; } diff --git a/wow_world_base/src/inner/wrath/object_type.rs b/wow_world_base/src/inner/wrath/object_type.rs index d80431b197..7084022a9f 100644 --- a/wow_world_base/src/inner/wrath/object_type.rs +++ b/wow_world_base/src/inner/wrath/object_type.rs @@ -1,4 +1,4 @@ -/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:69`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L69): +/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:61`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L61): /// ```text /// enum ObjectType : u8 { /// OBJECT = 0; diff --git a/wow_world_base/src/inner/wrath/spline_flag.rs b/wow_world_base/src/inner/wrath/spline_flag.rs index 9518fb49dd..82583e5b97 100644 --- a/wow_world_base/src/inner/wrath/spline_flag.rs +++ b/wow_world_base/src/inner/wrath/spline_flag.rs @@ -2,38 +2,30 @@ /// ```text /// flag SplineFlag : u32 { /// NONE = 0x00000000; -/// DONE = 0x00000001; -/// FALLING = 0x00000002; -/// UNKNOWN3 = 0x00000004; -/// UNKNOWN4 = 0x00000008; -/// UNKNOWN5 = 0x00000010; -/// UNKNOWN6 = 0x00000020; -/// UNKNOWN7 = 0x00000040; -/// UNKNOWN8 = 0x00000080; -/// RUNMODE = 0x00000100; -/// FLYING = 0x00000200; +/// DONE = 0x00000100; +/// FALLING = 0x00000200; /// NO_SPLINE = 0x00000400; /// PARABOLIC = 0x00000800; -/// UNKNOWN13 = 0x00001000; -/// UNKNOWN14 = 0x00002000; -/// UNKNOWN15 = 0x00004000; -/// UNKNOWN16 = 0x00008000; -/// FINAL_POINT = 0x00010000; -/// FINAL_TARGET = 0x00020000; -/// FINAL_ANGLE = 0x00040000; -/// UNKNOWN19 = 0x00080000; -/// CYCLIC = 0x00100000; -/// ENTER_CYCLE = 0x00200000; +/// WALK_MODE = 0x00001000; +/// FLYING = 0x00002000; +/// ORIENTATION_FIXED = 0x00004000; +/// FINAL_POINT = 0x00008000; +/// FINAL_TARGET = 0x00010000; +/// FINAL_ANGLE = 0x00020000; +/// CATMULLROM = 0x00040000; +/// CYCLIC = 0x00080000; +/// ENTER_CYCLE = 0x00100000; +/// ANIMATION = 0x00200000; /// FROZEN = 0x00400000; -/// UNKNOWN23 = 0x00800000; -/// UNKNOWN24 = 0x01000000; -/// UNKNOWN25 = 0x02000000; -/// UNKNOWN26 = 0x04000000; -/// UNKNOWN27 = 0x08000000; -/// UNKNOWN28 = 0x10000000; -/// UNKNOWN29 = 0x20000000; -/// UNKNOWN30 = 0x40000000; -/// UNKNOWN31 = 0x80000000; +/// TRANSPORT_ENTER = 0x00800000; +/// TRANSPORT_EXIT = 0x01000000; +/// UNKNOWN7 = 0x02000000; +/// UNKNOWN8 = 0x04000000; +/// ORIENTATION_INVERSED = 0x08000000; +/// UNKNOWN10 = 0x10000000; +/// UNKNOWN11 = 0x20000000; +/// UNKNOWN12 = 0x40000000; +/// UNKNOWN13 = 0x80000000; /// } /// ``` #[derive(Debug, PartialEq, Eq, Hash, Ord, PartialOrd, Copy, Clone, Default)] @@ -73,70 +65,6 @@ impl SplineFlag { write!(s, "FALLING").unwrap(); first = false; } - if self.is_unknown3() { - use std::fmt::Write; - if !first { - write!(s, " | ").unwrap(); - } - write!(s, "UNKNOWN3").unwrap(); - first = false; - } - if self.is_unknown4() { - use std::fmt::Write; - if !first { - write!(s, " | ").unwrap(); - } - write!(s, "UNKNOWN4").unwrap(); - first = false; - } - if self.is_unknown5() { - use std::fmt::Write; - if !first { - write!(s, " | ").unwrap(); - } - write!(s, "UNKNOWN5").unwrap(); - first = false; - } - if self.is_unknown6() { - use std::fmt::Write; - if !first { - write!(s, " | ").unwrap(); - } - write!(s, "UNKNOWN6").unwrap(); - first = false; - } - if self.is_unknown7() { - use std::fmt::Write; - if !first { - write!(s, " | ").unwrap(); - } - write!(s, "UNKNOWN7").unwrap(); - first = false; - } - if self.is_unknown8() { - use std::fmt::Write; - if !first { - write!(s, " | ").unwrap(); - } - write!(s, "UNKNOWN8").unwrap(); - first = false; - } - if self.is_runmode() { - use std::fmt::Write; - if !first { - write!(s, " | ").unwrap(); - } - write!(s, "RUNMODE").unwrap(); - first = false; - } - if self.is_flying() { - use std::fmt::Write; - if !first { - write!(s, " | ").unwrap(); - } - write!(s, "FLYING").unwrap(); - first = false; - } if self.is_no_spline() { use std::fmt::Write; if !first { @@ -153,36 +81,28 @@ impl SplineFlag { write!(s, "PARABOLIC").unwrap(); first = false; } - if self.is_unknown13() { + if self.is_walk_mode() { use std::fmt::Write; if !first { write!(s, " | ").unwrap(); } - write!(s, "UNKNOWN13").unwrap(); + write!(s, "WALK_MODE").unwrap(); first = false; } - if self.is_unknown14() { - use std::fmt::Write; - if !first { - write!(s, " | ").unwrap(); - } - write!(s, "UNKNOWN14").unwrap(); - first = false; - } - if self.is_unknown15() { + if self.is_flying() { use std::fmt::Write; if !first { write!(s, " | ").unwrap(); } - write!(s, "UNKNOWN15").unwrap(); + write!(s, "FLYING").unwrap(); first = false; } - if self.is_unknown16() { + if self.is_orientation_fixed() { use std::fmt::Write; if !first { write!(s, " | ").unwrap(); } - write!(s, "UNKNOWN16").unwrap(); + write!(s, "ORIENTATION_FIXED").unwrap(); first = false; } if self.is_final_point() { @@ -209,12 +129,12 @@ impl SplineFlag { write!(s, "FINAL_ANGLE").unwrap(); first = false; } - if self.is_unknown19() { + if self.is_catmullrom() { use std::fmt::Write; if !first { write!(s, " | ").unwrap(); } - write!(s, "UNKNOWN19").unwrap(); + write!(s, "CATMULLROM").unwrap(); first = false; } if self.is_cyclic() { @@ -233,6 +153,14 @@ impl SplineFlag { write!(s, "ENTER_CYCLE").unwrap(); first = false; } + if self.is_animation() { + use std::fmt::Write; + if !first { + write!(s, " | ").unwrap(); + } + write!(s, "ANIMATION").unwrap(); + first = false; + } if self.is_frozen() { use std::fmt::Write; if !first { @@ -241,76 +169,76 @@ impl SplineFlag { write!(s, "FROZEN").unwrap(); first = false; } - if self.is_unknown23() { + if self.is_transport_enter() { use std::fmt::Write; if !first { write!(s, " | ").unwrap(); } - write!(s, "UNKNOWN23").unwrap(); + write!(s, "TRANSPORT_ENTER").unwrap(); first = false; } - if self.is_unknown24() { + if self.is_transport_exit() { use std::fmt::Write; if !first { write!(s, " | ").unwrap(); } - write!(s, "UNKNOWN24").unwrap(); + write!(s, "TRANSPORT_EXIT").unwrap(); first = false; } - if self.is_unknown25() { + if self.is_unknown7() { use std::fmt::Write; if !first { write!(s, " | ").unwrap(); } - write!(s, "UNKNOWN25").unwrap(); + write!(s, "UNKNOWN7").unwrap(); first = false; } - if self.is_unknown26() { + if self.is_unknown8() { use std::fmt::Write; if !first { write!(s, " | ").unwrap(); } - write!(s, "UNKNOWN26").unwrap(); + write!(s, "UNKNOWN8").unwrap(); first = false; } - if self.is_unknown27() { + if self.is_orientation_inversed() { use std::fmt::Write; if !first { write!(s, " | ").unwrap(); } - write!(s, "UNKNOWN27").unwrap(); + write!(s, "ORIENTATION_INVERSED").unwrap(); first = false; } - if self.is_unknown28() { + if self.is_unknown10() { use std::fmt::Write; if !first { write!(s, " | ").unwrap(); } - write!(s, "UNKNOWN28").unwrap(); + write!(s, "UNKNOWN10").unwrap(); first = false; } - if self.is_unknown29() { + if self.is_unknown11() { use std::fmt::Write; if !first { write!(s, " | ").unwrap(); } - write!(s, "UNKNOWN29").unwrap(); + write!(s, "UNKNOWN11").unwrap(); first = false; } - if self.is_unknown30() { + if self.is_unknown12() { use std::fmt::Write; if !first { write!(s, " | ").unwrap(); } - write!(s, "UNKNOWN30").unwrap(); + write!(s, "UNKNOWN12").unwrap(); first = false; } - if self.is_unknown31() { + if self.is_unknown13() { use std::fmt::Write; if !first { write!(s, " | ").unwrap(); } - write!(s, "UNKNOWN31").unwrap(); + write!(s, "UNKNOWN13").unwrap(); first = false; } s @@ -324,38 +252,30 @@ impl SplineFlag { } pub const NONE: u32 = 0x00; - pub const DONE: u32 = 0x01; - pub const FALLING: u32 = 0x02; - pub const UNKNOWN3: u32 = 0x04; - pub const UNKNOWN4: u32 = 0x08; - pub const UNKNOWN5: u32 = 0x10; - pub const UNKNOWN6: u32 = 0x20; - pub const UNKNOWN7: u32 = 0x40; - pub const UNKNOWN8: u32 = 0x80; - pub const RUNMODE: u32 = 0x100; - pub const FLYING: u32 = 0x200; + pub const DONE: u32 = 0x100; + pub const FALLING: u32 = 0x200; pub const NO_SPLINE: u32 = 0x400; pub const PARABOLIC: u32 = 0x800; - pub const UNKNOWN13: u32 = 0x1000; - pub const UNKNOWN14: u32 = 0x2000; - pub const UNKNOWN15: u32 = 0x4000; - pub const UNKNOWN16: u32 = 0x8000; - pub const FINAL_POINT: u32 = 0x10000; - pub const FINAL_TARGET: u32 = 0x20000; - pub const FINAL_ANGLE: u32 = 0x40000; - pub const UNKNOWN19: u32 = 0x80000; - pub const CYCLIC: u32 = 0x100000; - pub const ENTER_CYCLE: u32 = 0x200000; + pub const WALK_MODE: u32 = 0x1000; + pub const FLYING: u32 = 0x2000; + pub const ORIENTATION_FIXED: u32 = 0x4000; + pub const FINAL_POINT: u32 = 0x8000; + pub const FINAL_TARGET: u32 = 0x10000; + pub const FINAL_ANGLE: u32 = 0x20000; + pub const CATMULLROM: u32 = 0x40000; + pub const CYCLIC: u32 = 0x80000; + pub const ENTER_CYCLE: u32 = 0x100000; + pub const ANIMATION: u32 = 0x200000; pub const FROZEN: u32 = 0x400000; - pub const UNKNOWN23: u32 = 0x800000; - pub const UNKNOWN24: u32 = 0x1000000; - pub const UNKNOWN25: u32 = 0x2000000; - pub const UNKNOWN26: u32 = 0x4000000; - pub const UNKNOWN27: u32 = 0x8000000; - pub const UNKNOWN28: u32 = 0x10000000; - pub const UNKNOWN29: u32 = 0x20000000; - pub const UNKNOWN30: u32 = 0x40000000; - pub const UNKNOWN31: u32 = 0x80000000; + pub const TRANSPORT_ENTER: u32 = 0x800000; + pub const TRANSPORT_EXIT: u32 = 0x1000000; + pub const UNKNOWN7: u32 = 0x2000000; + pub const UNKNOWN8: u32 = 0x4000000; + pub const ORIENTATION_INVERSED: u32 = 0x8000000; + pub const UNKNOWN10: u32 = 0x10000000; + pub const UNKNOWN11: u32 = 0x20000000; + pub const UNKNOWN12: u32 = 0x40000000; + pub const UNKNOWN13: u32 = 0x80000000; pub const fn empty() -> Self { Self { inner: 0 } @@ -370,36 +290,28 @@ impl SplineFlag { inner: Self::NONE | Self::DONE | Self::FALLING - | Self::UNKNOWN3 - | Self::UNKNOWN4 - | Self::UNKNOWN5 - | Self::UNKNOWN6 - | Self::UNKNOWN7 - | Self::UNKNOWN8 - | Self::RUNMODE - | Self::FLYING | Self::NO_SPLINE | Self::PARABOLIC - | Self::UNKNOWN13 - | Self::UNKNOWN14 - | Self::UNKNOWN15 - | Self::UNKNOWN16 + | Self::WALK_MODE + | Self::FLYING + | Self::ORIENTATION_FIXED | Self::FINAL_POINT | Self::FINAL_TARGET | Self::FINAL_ANGLE - | Self::UNKNOWN19 + | Self::CATMULLROM | Self::CYCLIC | Self::ENTER_CYCLE + | Self::ANIMATION | Self::FROZEN - | Self::UNKNOWN23 - | Self::UNKNOWN24 - | Self::UNKNOWN25 - | Self::UNKNOWN26 - | Self::UNKNOWN27 - | Self::UNKNOWN28 - | Self::UNKNOWN29 - | Self::UNKNOWN30 - | Self::UNKNOWN31 + | Self::TRANSPORT_ENTER + | Self::TRANSPORT_EXIT + | Self::UNKNOWN7 + | Self::UNKNOWN8 + | Self::ORIENTATION_INVERSED + | Self::UNKNOWN10 + | Self::UNKNOWN11 + | Self::UNKNOWN12 + | Self::UNKNOWN13 } } @@ -440,151 +352,6 @@ impl SplineFlag { *self } - pub const fn is_unknown3(&self) -> bool { - (self.inner & Self::UNKNOWN3) != 0 - } - - pub const fn new_unknown3() -> Self { - Self { inner: Self::UNKNOWN3 } - } - - pub fn set_unknown3(&mut self) -> Self { - self.inner |= Self::UNKNOWN3; - *self - } - - pub fn clear_unknown3(&mut self) -> Self { - self.inner &= Self::UNKNOWN3.reverse_bits(); - *self - } - - pub const fn is_unknown4(&self) -> bool { - (self.inner & Self::UNKNOWN4) != 0 - } - - pub const fn new_unknown4() -> Self { - Self { inner: Self::UNKNOWN4 } - } - - pub fn set_unknown4(&mut self) -> Self { - self.inner |= Self::UNKNOWN4; - *self - } - - pub fn clear_unknown4(&mut self) -> Self { - self.inner &= Self::UNKNOWN4.reverse_bits(); - *self - } - - pub const fn is_unknown5(&self) -> bool { - (self.inner & Self::UNKNOWN5) != 0 - } - - pub const fn new_unknown5() -> Self { - Self { inner: Self::UNKNOWN5 } - } - - pub fn set_unknown5(&mut self) -> Self { - self.inner |= Self::UNKNOWN5; - *self - } - - pub fn clear_unknown5(&mut self) -> Self { - self.inner &= Self::UNKNOWN5.reverse_bits(); - *self - } - - pub const fn is_unknown6(&self) -> bool { - (self.inner & Self::UNKNOWN6) != 0 - } - - pub const fn new_unknown6() -> Self { - Self { inner: Self::UNKNOWN6 } - } - - pub fn set_unknown6(&mut self) -> Self { - self.inner |= Self::UNKNOWN6; - *self - } - - pub fn clear_unknown6(&mut self) -> Self { - self.inner &= Self::UNKNOWN6.reverse_bits(); - *self - } - - pub const fn is_unknown7(&self) -> bool { - (self.inner & Self::UNKNOWN7) != 0 - } - - pub const fn new_unknown7() -> Self { - Self { inner: Self::UNKNOWN7 } - } - - pub fn set_unknown7(&mut self) -> Self { - self.inner |= Self::UNKNOWN7; - *self - } - - pub fn clear_unknown7(&mut self) -> Self { - self.inner &= Self::UNKNOWN7.reverse_bits(); - *self - } - - pub const fn is_unknown8(&self) -> bool { - (self.inner & Self::UNKNOWN8) != 0 - } - - pub const fn new_unknown8() -> Self { - Self { inner: Self::UNKNOWN8 } - } - - pub fn set_unknown8(&mut self) -> Self { - self.inner |= Self::UNKNOWN8; - *self - } - - pub fn clear_unknown8(&mut self) -> Self { - self.inner &= Self::UNKNOWN8.reverse_bits(); - *self - } - - pub const fn is_runmode(&self) -> bool { - (self.inner & Self::RUNMODE) != 0 - } - - pub const fn new_runmode() -> Self { - Self { inner: Self::RUNMODE } - } - - pub fn set_runmode(&mut self) -> Self { - self.inner |= Self::RUNMODE; - *self - } - - pub fn clear_runmode(&mut self) -> Self { - self.inner &= Self::RUNMODE.reverse_bits(); - *self - } - - pub const fn is_flying(&self) -> bool { - (self.inner & Self::FLYING) != 0 - } - - /// vmangos: Smooth movement(Catmullrom interpolation mode), flying animation - pub const fn new_flying() -> Self { - Self { inner: Self::FLYING } - } - - pub fn set_flying(&mut self) -> Self { - self.inner |= Self::FLYING; - *self - } - - pub fn clear_flying(&mut self) -> Self { - self.inner &= Self::FLYING.reverse_bits(); - *self - } - pub const fn is_no_spline(&self) -> bool { (self.inner & Self::NO_SPLINE) != 0 } @@ -621,75 +388,57 @@ impl SplineFlag { *self } - pub const fn is_unknown13(&self) -> bool { - (self.inner & Self::UNKNOWN13) != 0 - } - - pub const fn new_unknown13() -> Self { - Self { inner: Self::UNKNOWN13 } + pub const fn is_walk_mode(&self) -> bool { + (self.inner & Self::WALK_MODE) != 0 } - pub fn set_unknown13(&mut self) -> Self { - self.inner |= Self::UNKNOWN13; - *self + pub const fn new_walk_mode() -> Self { + Self { inner: Self::WALK_MODE } } - pub fn clear_unknown13(&mut self) -> Self { - self.inner &= Self::UNKNOWN13.reverse_bits(); + pub fn set_walk_mode(&mut self) -> Self { + self.inner |= Self::WALK_MODE; *self } - pub const fn is_unknown14(&self) -> bool { - (self.inner & Self::UNKNOWN14) != 0 - } - - pub const fn new_unknown14() -> Self { - Self { inner: Self::UNKNOWN14 } - } - - pub fn set_unknown14(&mut self) -> Self { - self.inner |= Self::UNKNOWN14; + pub fn clear_walk_mode(&mut self) -> Self { + self.inner &= Self::WALK_MODE.reverse_bits(); *self } - pub fn clear_unknown14(&mut self) -> Self { - self.inner &= Self::UNKNOWN14.reverse_bits(); - *self - } - - pub const fn is_unknown15(&self) -> bool { - (self.inner & Self::UNKNOWN15) != 0 + pub const fn is_flying(&self) -> bool { + (self.inner & Self::FLYING) != 0 } - pub const fn new_unknown15() -> Self { - Self { inner: Self::UNKNOWN15 } + pub const fn new_flying() -> Self { + Self { inner: Self::FLYING } } - pub fn set_unknown15(&mut self) -> Self { - self.inner |= Self::UNKNOWN15; + pub fn set_flying(&mut self) -> Self { + self.inner |= Self::FLYING; *self } - pub fn clear_unknown15(&mut self) -> Self { - self.inner &= Self::UNKNOWN15.reverse_bits(); + pub fn clear_flying(&mut self) -> Self { + self.inner &= Self::FLYING.reverse_bits(); *self } - pub const fn is_unknown16(&self) -> bool { - (self.inner & Self::UNKNOWN16) != 0 + pub const fn is_orientation_fixed(&self) -> bool { + (self.inner & Self::ORIENTATION_FIXED) != 0 } - pub const fn new_unknown16() -> Self { - Self { inner: Self::UNKNOWN16 } + pub const fn new_orientation_fixed() -> Self { + Self { inner: Self::ORIENTATION_FIXED } } - pub fn set_unknown16(&mut self) -> Self { - self.inner |= Self::UNKNOWN16; + pub fn set_orientation_fixed(&mut self) -> Self { + self.inner |= Self::ORIENTATION_FIXED; *self } - pub fn clear_unknown16(&mut self) -> Self { - self.inner &= Self::UNKNOWN16.reverse_bits(); + pub fn clear_orientation_fixed(&mut self) -> Self { + self.inner &= Self::ORIENTATION_FIXED.reverse_bits(); *self } @@ -747,22 +496,22 @@ impl SplineFlag { *self } - pub const fn is_unknown19(&self) -> bool { - (self.inner & Self::UNKNOWN19) != 0 + pub const fn is_catmullrom(&self) -> bool { + (self.inner & Self::CATMULLROM) != 0 } - /// vmangos: exists, but unknown what it does - pub const fn new_unknown19() -> Self { - Self { inner: Self::UNKNOWN19 } + /// azerothcore: Used Catmullrom interpolation mode + pub const fn new_catmullrom() -> Self { + Self { inner: Self::CATMULLROM } } - pub fn set_unknown19(&mut self) -> Self { - self.inner |= Self::UNKNOWN19; + pub fn set_catmullrom(&mut self) -> Self { + self.inner |= Self::CATMULLROM; *self } - pub fn clear_unknown19(&mut self) -> Self { - self.inner &= Self::UNKNOWN19.reverse_bits(); + pub fn clear_catmullrom(&mut self) -> Self { + self.inner &= Self::CATMULLROM.reverse_bits(); *self } @@ -770,7 +519,7 @@ impl SplineFlag { (self.inner & Self::CYCLIC) != 0 } - /// vmangos: Movement by cycled spline + /// azerothcore: Movement by cycled spline pub const fn new_cyclic() -> Self { Self { inner: Self::CYCLIC } } @@ -789,7 +538,7 @@ impl SplineFlag { (self.inner & Self::ENTER_CYCLE) != 0 } - /// vmangos: Everytimes appears with cyclic flag in monster move packet, erases first spline vertex after first cycle done + /// azerothcore: Everytimes appears with cyclic flag in monster move packet, erases first spline vertex after first cycle done pub const fn new_enter_cycle() -> Self { Self { inner: Self::ENTER_CYCLE } } @@ -804,6 +553,25 @@ impl SplineFlag { *self } + pub const fn is_animation(&self) -> bool { + (self.inner & Self::ANIMATION) != 0 + } + + /// azerothcore: Plays animation after some time passed + pub const fn new_animation() -> Self { + Self { inner: Self::ANIMATION } + } + + pub fn set_animation(&mut self) -> Self { + self.inner |= Self::ANIMATION; + *self + } + + pub fn clear_animation(&mut self) -> Self { + self.inner &= Self::ANIMATION.reverse_bits(); + *self + } + pub const fn is_frozen(&self) -> bool { (self.inner & Self::FROZEN) != 0 } @@ -823,166 +591,166 @@ impl SplineFlag { *self } - pub const fn is_unknown23(&self) -> bool { - (self.inner & Self::UNKNOWN23) != 0 + pub const fn is_transport_enter(&self) -> bool { + (self.inner & Self::TRANSPORT_ENTER) != 0 } - pub const fn new_unknown23() -> Self { - Self { inner: Self::UNKNOWN23 } + pub const fn new_transport_enter() -> Self { + Self { inner: Self::TRANSPORT_ENTER } } - pub fn set_unknown23(&mut self) -> Self { - self.inner |= Self::UNKNOWN23; + pub fn set_transport_enter(&mut self) -> Self { + self.inner |= Self::TRANSPORT_ENTER; *self } - pub fn clear_unknown23(&mut self) -> Self { - self.inner &= Self::UNKNOWN23.reverse_bits(); + pub fn clear_transport_enter(&mut self) -> Self { + self.inner &= Self::TRANSPORT_ENTER.reverse_bits(); *self } - pub const fn is_unknown24(&self) -> bool { - (self.inner & Self::UNKNOWN24) != 0 + pub const fn is_transport_exit(&self) -> bool { + (self.inner & Self::TRANSPORT_EXIT) != 0 } - pub const fn new_unknown24() -> Self { - Self { inner: Self::UNKNOWN24 } + pub const fn new_transport_exit() -> Self { + Self { inner: Self::TRANSPORT_EXIT } } - pub fn set_unknown24(&mut self) -> Self { - self.inner |= Self::UNKNOWN24; + pub fn set_transport_exit(&mut self) -> Self { + self.inner |= Self::TRANSPORT_EXIT; *self } - pub fn clear_unknown24(&mut self) -> Self { - self.inner &= Self::UNKNOWN24.reverse_bits(); + pub fn clear_transport_exit(&mut self) -> Self { + self.inner &= Self::TRANSPORT_EXIT.reverse_bits(); *self } - pub const fn is_unknown25(&self) -> bool { - (self.inner & Self::UNKNOWN25) != 0 + pub const fn is_unknown7(&self) -> bool { + (self.inner & Self::UNKNOWN7) != 0 } /// vmangos: exists, but unknown what it does - pub const fn new_unknown25() -> Self { - Self { inner: Self::UNKNOWN25 } + pub const fn new_unknown7() -> Self { + Self { inner: Self::UNKNOWN7 } } - pub fn set_unknown25(&mut self) -> Self { - self.inner |= Self::UNKNOWN25; + pub fn set_unknown7(&mut self) -> Self { + self.inner |= Self::UNKNOWN7; *self } - pub fn clear_unknown25(&mut self) -> Self { - self.inner &= Self::UNKNOWN25.reverse_bits(); + pub fn clear_unknown7(&mut self) -> Self { + self.inner &= Self::UNKNOWN7.reverse_bits(); *self } - pub const fn is_unknown26(&self) -> bool { - (self.inner & Self::UNKNOWN26) != 0 + pub const fn is_unknown8(&self) -> bool { + (self.inner & Self::UNKNOWN8) != 0 } - pub const fn new_unknown26() -> Self { - Self { inner: Self::UNKNOWN26 } + pub const fn new_unknown8() -> Self { + Self { inner: Self::UNKNOWN8 } } - pub fn set_unknown26(&mut self) -> Self { - self.inner |= Self::UNKNOWN26; + pub fn set_unknown8(&mut self) -> Self { + self.inner |= Self::UNKNOWN8; *self } - pub fn clear_unknown26(&mut self) -> Self { - self.inner &= Self::UNKNOWN26.reverse_bits(); + pub fn clear_unknown8(&mut self) -> Self { + self.inner &= Self::UNKNOWN8.reverse_bits(); *self } - pub const fn is_unknown27(&self) -> bool { - (self.inner & Self::UNKNOWN27) != 0 + pub const fn is_orientation_inversed(&self) -> bool { + (self.inner & Self::ORIENTATION_INVERSED) != 0 } - pub const fn new_unknown27() -> Self { - Self { inner: Self::UNKNOWN27 } + pub const fn new_orientation_inversed() -> Self { + Self { inner: Self::ORIENTATION_INVERSED } } - pub fn set_unknown27(&mut self) -> Self { - self.inner |= Self::UNKNOWN27; + pub fn set_orientation_inversed(&mut self) -> Self { + self.inner |= Self::ORIENTATION_INVERSED; *self } - pub fn clear_unknown27(&mut self) -> Self { - self.inner &= Self::UNKNOWN27.reverse_bits(); + pub fn clear_orientation_inversed(&mut self) -> Self { + self.inner &= Self::ORIENTATION_INVERSED.reverse_bits(); *self } - pub const fn is_unknown28(&self) -> bool { - (self.inner & Self::UNKNOWN28) != 0 + pub const fn is_unknown10(&self) -> bool { + (self.inner & Self::UNKNOWN10) != 0 } - pub const fn new_unknown28() -> Self { - Self { inner: Self::UNKNOWN28 } + pub const fn new_unknown10() -> Self { + Self { inner: Self::UNKNOWN10 } } - pub fn set_unknown28(&mut self) -> Self { - self.inner |= Self::UNKNOWN28; + pub fn set_unknown10(&mut self) -> Self { + self.inner |= Self::UNKNOWN10; *self } - pub fn clear_unknown28(&mut self) -> Self { - self.inner &= Self::UNKNOWN28.reverse_bits(); + pub fn clear_unknown10(&mut self) -> Self { + self.inner &= Self::UNKNOWN10.reverse_bits(); *self } - pub const fn is_unknown29(&self) -> bool { - (self.inner & Self::UNKNOWN29) != 0 + pub const fn is_unknown11(&self) -> bool { + (self.inner & Self::UNKNOWN11) != 0 } - pub const fn new_unknown29() -> Self { - Self { inner: Self::UNKNOWN29 } + pub const fn new_unknown11() -> Self { + Self { inner: Self::UNKNOWN11 } } - pub fn set_unknown29(&mut self) -> Self { - self.inner |= Self::UNKNOWN29; + pub fn set_unknown11(&mut self) -> Self { + self.inner |= Self::UNKNOWN11; *self } - pub fn clear_unknown29(&mut self) -> Self { - self.inner &= Self::UNKNOWN29.reverse_bits(); + pub fn clear_unknown11(&mut self) -> Self { + self.inner &= Self::UNKNOWN11.reverse_bits(); *self } - pub const fn is_unknown30(&self) -> bool { - (self.inner & Self::UNKNOWN30) != 0 + pub const fn is_unknown12(&self) -> bool { + (self.inner & Self::UNKNOWN12) != 0 } - pub const fn new_unknown30() -> Self { - Self { inner: Self::UNKNOWN30 } + pub const fn new_unknown12() -> Self { + Self { inner: Self::UNKNOWN12 } } - pub fn set_unknown30(&mut self) -> Self { - self.inner |= Self::UNKNOWN30; + pub fn set_unknown12(&mut self) -> Self { + self.inner |= Self::UNKNOWN12; *self } - pub fn clear_unknown30(&mut self) -> Self { - self.inner &= Self::UNKNOWN30.reverse_bits(); + pub fn clear_unknown12(&mut self) -> Self { + self.inner &= Self::UNKNOWN12.reverse_bits(); *self } - pub const fn is_unknown31(&self) -> bool { - (self.inner & Self::UNKNOWN31) != 0 + pub const fn is_unknown13(&self) -> bool { + (self.inner & Self::UNKNOWN13) != 0 } - pub const fn new_unknown31() -> Self { - Self { inner: Self::UNKNOWN31 } + pub const fn new_unknown13() -> Self { + Self { inner: Self::UNKNOWN13 } } - pub fn set_unknown31(&mut self) -> Self { - self.inner |= Self::UNKNOWN31; + pub fn set_unknown13(&mut self) -> Self { + self.inner |= Self::UNKNOWN13; *self } - pub fn clear_unknown31(&mut self) -> Self { - self.inner &= Self::UNKNOWN31.reverse_bits(); + pub fn clear_unknown13(&mut self) -> Self { + self.inner &= Self::UNKNOWN13.reverse_bits(); *self } diff --git a/wow_world_messages/src/world/wrath/movement_block.rs b/wow_world_messages/src/world/wrath/movement_block.rs index c9b3003e1a..0861150279 100644 --- a/wow_world_messages/src/world/wrath/movement_block.rs +++ b/wow_world_messages/src/world/wrath/movement_block.rs @@ -5,7 +5,7 @@ use crate::wrath::{ MovementFlags, SplineFlag, TransportInfo, UpdateFlag, Vector3d, }; -/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:80`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L80): +/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:72`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L72): /// ```text /// struct MovementBlock { /// UpdateFlag update_flag; @@ -63,14 +63,20 @@ use crate::wrath::{ /// 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; /// } @@ -279,6 +285,18 @@ impl MovementBlock { // id: u32 w.write_all(&if_statement.id.to_le_bytes())?; + // duration_mod: f32 + w.write_all(&if_statement.duration_mod.to_le_bytes())?; + + // duration_mod_next: f32 + w.write_all(&if_statement.duration_mod_next.to_le_bytes())?; + + // vertical_acceleration: f32 + w.write_all(&if_statement.vertical_acceleration.to_le_bytes())?; + + // effect_start_time: f32 + w.write_all(&if_statement.effect_start_time.to_le_bytes())?; + // amount_of_nodes: u32 w.write_all(&(if_statement.nodes.len() as u32).to_le_bytes())?; @@ -287,6 +305,9 @@ impl MovementBlock { crate::util::vanilla_tbc_wrath_vector3d_write_into_vec(i, &mut w)?; } + // mode: u8 + w.write_all(&if_statement.mode.to_le_bytes())?; + // final_node: Vector3d crate::util::vanilla_tbc_wrath_vector3d_write_into_vec(&if_statement.final_node, &mut w)?; @@ -298,6 +319,7 @@ impl MovementBlock { orientation1, position1, transport_guid, + transport_offset, } => { // transport_guid: PackedGuid crate::util::write_packed_guid(&transport_guid, &mut w)?; @@ -305,6 +327,9 @@ impl MovementBlock { // position1: Vector3d crate::util::vanilla_tbc_wrath_vector3d_write_into_vec(&position1, &mut w)?; + // transport_offset: Vector3d + crate::util::vanilla_tbc_wrath_vector3d_write_into_vec(&transport_offset, &mut w)?; + // orientation1: f32 w.write_all(&orientation1.to_le_bytes())?; @@ -550,6 +575,18 @@ impl MovementBlock { // id: u32 let id = crate::util::read_u32_le(&mut r)?; + // duration_mod: f32 + let duration_mod = crate::util::read_f32_le(&mut r)?; + + // duration_mod_next: f32 + let duration_mod_next = crate::util::read_f32_le(&mut r)?; + + // vertical_acceleration: f32 + let vertical_acceleration = crate::util::read_f32_le(&mut r)?; + + // effect_start_time: f32 + let effect_start_time = crate::util::read_f32_le(&mut r)?; + // amount_of_nodes: u32 let amount_of_nodes = crate::util::read_u32_le(&mut r)?; @@ -568,6 +605,9 @@ impl MovementBlock { nodes }; + // mode: u8 + let mode = crate::util::read_u8_le(&mut r)?; + // final_node: Vector3d let final_node = crate::util::vanilla_tbc_wrath_vector3d_read(&mut r)?; @@ -578,11 +618,16 @@ impl MovementBlock { Some(MovementBlock_MovementFlags_SplineEnabled { duration, + duration_mod, + duration_mod_next, + effect_start_time, final_node, id, + mode, nodes, spline_flags, time_passed, + vertical_acceleration, }) } else { @@ -622,6 +667,9 @@ impl MovementBlock { // position1: Vector3d let position1 = crate::util::vanilla_tbc_wrath_vector3d_read(&mut r)?; + // transport_offset: Vector3d + let transport_offset = crate::util::vanilla_tbc_wrath_vector3d_read(&mut r)?; + // orientation1: f32 let orientation1 = crate::util::read_f32_le(&mut r)?; @@ -633,6 +681,7 @@ impl MovementBlock { orientation1, position1, transport_guid, + transport_offset, }) } else if update_flag.is_has_position() { @@ -826,9 +875,9 @@ pub enum MovementBlock_SplineFlag_FinalAngle { impl MovementBlock_SplineFlag_FinalAngle { pub(crate) const fn as_int(&self) -> u32 { match self { - Self::FinalAngle { .. } => 262144, - Self::FinalTarget { .. } => 131072, - Self::FinalPoint { .. } => 65536, + Self::FinalAngle { .. } => 131072, + Self::FinalTarget { .. } => 65536, + Self::FinalPoint { .. } => 32768, } } @@ -941,190 +990,6 @@ impl MovementBlock_SplineFlag { self } - pub const fn new_unknown3() -> Self { - Self { - inner: SplineFlag::UNKNOWN3, - final_angle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown3(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN3; - self - } - - pub const fn get_unknown3(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN3) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown3(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN3.reverse_bits(); - self - } - - pub const fn new_unknown4() -> Self { - Self { - inner: SplineFlag::UNKNOWN4, - final_angle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown4(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN4; - self - } - - pub const fn get_unknown4(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN4) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown4(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN4.reverse_bits(); - self - } - - pub const fn new_unknown5() -> Self { - Self { - inner: SplineFlag::UNKNOWN5, - final_angle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown5(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN5; - self - } - - pub const fn get_unknown5(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN5) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown5(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN5.reverse_bits(); - self - } - - pub const fn new_unknown6() -> Self { - Self { - inner: SplineFlag::UNKNOWN6, - final_angle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown6(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN6; - self - } - - pub const fn get_unknown6(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN6) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown6(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN6.reverse_bits(); - self - } - - pub const fn new_unknown7() -> Self { - Self { - inner: SplineFlag::UNKNOWN7, - final_angle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown7(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN7; - self - } - - pub const fn get_unknown7(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN7) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown7(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN7.reverse_bits(); - self - } - - pub const fn new_unknown8() -> Self { - Self { - inner: SplineFlag::UNKNOWN8, - final_angle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown8(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN8; - self - } - - pub const fn get_unknown8(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN8) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown8(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN8.reverse_bits(); - self - } - - pub const fn new_runmode() -> Self { - Self { - inner: SplineFlag::RUNMODE, - final_angle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_runmode(mut self) -> Self { - self.inner |= SplineFlag::RUNMODE; - self - } - - pub const fn get_runmode(&self) -> bool { - (self.inner & SplineFlag::RUNMODE) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_runmode(mut self) -> Self { - self.inner &= SplineFlag::RUNMODE.reverse_bits(); - self - } - - pub const fn new_flying() -> Self { - Self { - inner: SplineFlag::FLYING, - final_angle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_flying(mut self) -> Self { - self.inner |= SplineFlag::FLYING; - self - } - - pub const fn get_flying(&self) -> bool { - (self.inner & SplineFlag::FLYING) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_flying(mut self) -> Self { - self.inner &= SplineFlag::FLYING.reverse_bits(); - self - } - pub const fn new_no_spline() -> Self { Self { inner: SplineFlag::NO_SPLINE, @@ -1171,95 +1036,72 @@ impl MovementBlock_SplineFlag { self } - pub const fn new_unknown13() -> Self { + pub const fn new_walk_mode() -> Self { Self { - inner: SplineFlag::UNKNOWN13, + inner: SplineFlag::WALK_MODE, final_angle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown13(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN13; + pub fn set_walk_mode(mut self) -> Self { + self.inner |= SplineFlag::WALK_MODE; self } - pub const fn get_unknown13(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN13) != 0 + pub const fn get_walk_mode(&self) -> bool { + (self.inner & SplineFlag::WALK_MODE) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown13(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN13.reverse_bits(); + pub fn clear_walk_mode(mut self) -> Self { + self.inner &= SplineFlag::WALK_MODE.reverse_bits(); self } - pub const fn new_unknown14() -> Self { - Self { - inner: SplineFlag::UNKNOWN14, - final_angle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown14(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN14; - self - } - - pub const fn get_unknown14(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN14) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown14(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN14.reverse_bits(); - self - } - - pub const fn new_unknown15() -> Self { + pub const fn new_flying() -> Self { Self { - inner: SplineFlag::UNKNOWN15, + inner: SplineFlag::FLYING, final_angle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown15(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN15; + pub fn set_flying(mut self) -> Self { + self.inner |= SplineFlag::FLYING; self } - pub const fn get_unknown15(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN15) != 0 + pub const fn get_flying(&self) -> bool { + (self.inner & SplineFlag::FLYING) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown15(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN15.reverse_bits(); + pub fn clear_flying(mut self) -> Self { + self.inner &= SplineFlag::FLYING.reverse_bits(); self } - pub const fn new_unknown16() -> Self { + pub const fn new_orientation_fixed() -> Self { Self { - inner: SplineFlag::UNKNOWN16, + inner: SplineFlag::ORIENTATION_FIXED, final_angle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown16(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN16; + pub fn set_orientation_fixed(mut self) -> Self { + self.inner |= SplineFlag::ORIENTATION_FIXED; self } - pub const fn get_unknown16(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN16) != 0 + pub const fn get_orientation_fixed(&self) -> bool { + (self.inner & SplineFlag::ORIENTATION_FIXED) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown16(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN16.reverse_bits(); + pub fn clear_orientation_fixed(mut self) -> Self { + self.inner &= SplineFlag::ORIENTATION_FIXED.reverse_bits(); self } @@ -1288,26 +1130,26 @@ impl MovementBlock_SplineFlag { self } - pub const fn new_unknown19() -> Self { + pub const fn new_catmullrom() -> Self { Self { - inner: SplineFlag::UNKNOWN19, + inner: SplineFlag::CATMULLROM, final_angle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown19(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN19; + pub fn set_catmullrom(mut self) -> Self { + self.inner |= SplineFlag::CATMULLROM; self } - pub const fn get_unknown19(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN19) != 0 + pub const fn get_catmullrom(&self) -> bool { + (self.inner & SplineFlag::CATMULLROM) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown19(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN19.reverse_bits(); + pub fn clear_catmullrom(mut self) -> Self { + self.inner &= SplineFlag::CATMULLROM.reverse_bits(); self } @@ -1357,6 +1199,29 @@ impl MovementBlock_SplineFlag { self } + pub const fn new_animation() -> Self { + Self { + inner: SplineFlag::ANIMATION, + final_angle: None, + } + } + + #[allow(clippy::missing_const_for_fn)] // false positive + pub fn set_animation(mut self) -> Self { + self.inner |= SplineFlag::ANIMATION; + self + } + + pub const fn get_animation(&self) -> bool { + (self.inner & SplineFlag::ANIMATION) != 0 + } + + #[allow(clippy::missing_const_for_fn)] // false positive + pub fn clear_animation(mut self) -> Self { + self.inner &= SplineFlag::ANIMATION.reverse_bits(); + self + } + pub const fn new_frozen() -> Self { Self { inner: SplineFlag::FROZEN, @@ -1380,210 +1245,210 @@ impl MovementBlock_SplineFlag { self } - pub const fn new_unknown23() -> Self { + pub const fn new_transport_enter() -> Self { Self { - inner: SplineFlag::UNKNOWN23, + inner: SplineFlag::TRANSPORT_ENTER, final_angle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown23(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN23; + pub fn set_transport_enter(mut self) -> Self { + self.inner |= SplineFlag::TRANSPORT_ENTER; self } - pub const fn get_unknown23(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN23) != 0 + pub const fn get_transport_enter(&self) -> bool { + (self.inner & SplineFlag::TRANSPORT_ENTER) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown23(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN23.reverse_bits(); + pub fn clear_transport_enter(mut self) -> Self { + self.inner &= SplineFlag::TRANSPORT_ENTER.reverse_bits(); self } - pub const fn new_unknown24() -> Self { + pub const fn new_transport_exit() -> Self { Self { - inner: SplineFlag::UNKNOWN24, + inner: SplineFlag::TRANSPORT_EXIT, final_angle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown24(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN24; + pub fn set_transport_exit(mut self) -> Self { + self.inner |= SplineFlag::TRANSPORT_EXIT; self } - pub const fn get_unknown24(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN24) != 0 + pub const fn get_transport_exit(&self) -> bool { + (self.inner & SplineFlag::TRANSPORT_EXIT) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown24(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN24.reverse_bits(); + pub fn clear_transport_exit(mut self) -> Self { + self.inner &= SplineFlag::TRANSPORT_EXIT.reverse_bits(); self } - pub const fn new_unknown25() -> Self { + pub const fn new_unknown7() -> Self { Self { - inner: SplineFlag::UNKNOWN25, + inner: SplineFlag::UNKNOWN7, final_angle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown25(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN25; + pub fn set_unknown7(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN7; self } - pub const fn get_unknown25(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN25) != 0 + pub const fn get_unknown7(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN7) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown25(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN25.reverse_bits(); + pub fn clear_unknown7(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN7.reverse_bits(); self } - pub const fn new_unknown26() -> Self { + pub const fn new_unknown8() -> Self { Self { - inner: SplineFlag::UNKNOWN26, + inner: SplineFlag::UNKNOWN8, final_angle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown26(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN26; + pub fn set_unknown8(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN8; self } - pub const fn get_unknown26(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN26) != 0 + pub const fn get_unknown8(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN8) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown26(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN26.reverse_bits(); + pub fn clear_unknown8(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN8.reverse_bits(); self } - pub const fn new_unknown27() -> Self { + pub const fn new_orientation_inversed() -> Self { Self { - inner: SplineFlag::UNKNOWN27, + inner: SplineFlag::ORIENTATION_INVERSED, final_angle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown27(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN27; + pub fn set_orientation_inversed(mut self) -> Self { + self.inner |= SplineFlag::ORIENTATION_INVERSED; self } - pub const fn get_unknown27(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN27) != 0 + pub const fn get_orientation_inversed(&self) -> bool { + (self.inner & SplineFlag::ORIENTATION_INVERSED) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown27(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN27.reverse_bits(); + pub fn clear_orientation_inversed(mut self) -> Self { + self.inner &= SplineFlag::ORIENTATION_INVERSED.reverse_bits(); self } - pub const fn new_unknown28() -> Self { + pub const fn new_unknown10() -> Self { Self { - inner: SplineFlag::UNKNOWN28, + inner: SplineFlag::UNKNOWN10, final_angle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown28(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN28; + pub fn set_unknown10(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN10; self } - pub const fn get_unknown28(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN28) != 0 + pub const fn get_unknown10(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN10) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown28(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN28.reverse_bits(); + pub fn clear_unknown10(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN10.reverse_bits(); self } - pub const fn new_unknown29() -> Self { + pub const fn new_unknown11() -> Self { Self { - inner: SplineFlag::UNKNOWN29, + inner: SplineFlag::UNKNOWN11, final_angle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown29(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN29; + pub fn set_unknown11(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN11; self } - pub const fn get_unknown29(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN29) != 0 + pub const fn get_unknown11(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN11) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown29(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN29.reverse_bits(); + pub fn clear_unknown11(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN11.reverse_bits(); self } - pub const fn new_unknown30() -> Self { + pub const fn new_unknown12() -> Self { Self { - inner: SplineFlag::UNKNOWN30, + inner: SplineFlag::UNKNOWN12, final_angle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown30(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN30; + pub fn set_unknown12(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN12; self } - pub const fn get_unknown30(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN30) != 0 + pub const fn get_unknown12(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN12) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown30(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN30.reverse_bits(); + pub fn clear_unknown12(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN12.reverse_bits(); self } - pub const fn new_unknown31() -> Self { + pub const fn new_unknown13() -> Self { Self { - inner: SplineFlag::UNKNOWN31, + inner: SplineFlag::UNKNOWN13, final_angle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown31(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN31; + pub fn set_unknown13(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN13; self } - pub const fn get_unknown31(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN31) != 0 + pub const fn get_unknown13(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN13) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown31(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN31.reverse_bits(); + pub fn clear_unknown13(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN13.reverse_bits(); self } @@ -2985,22 +2850,32 @@ pub struct MovementBlock_MovementFlags_SplineElevation { #[derive(Debug, Clone, PartialEq, PartialOrd, Default)] pub struct MovementBlock_MovementFlags_SplineEnabled { pub duration: u32, + pub duration_mod: f32, + pub duration_mod_next: f32, + pub effect_start_time: f32, pub final_node: Vector3d, pub id: u32, + pub mode: u8, pub nodes: Vec, pub spline_flags: MovementBlock_SplineFlag, pub time_passed: u32, + pub vertical_acceleration: f32, } impl MovementBlock_MovementFlags_SplineEnabled { pub(crate) fn size(&self) -> usize { 4 // amount_of_nodes: u32 + 4 // duration: u32 + + 4 // duration_mod: f32 + + 4 // duration_mod_next: f32 + + 4 // effect_start_time: f32 + 12 // final_node: Vector3d + 4 // id: u32 + + 1 // mode: u8 + self.nodes.len() * 12 // nodes: Vector3d[amount_of_nodes] + self.spline_flags.size() // spline_flags: MovementBlock_SplineFlag + 4 // time_passed: u32 + + 4 // vertical_acceleration: f32 } } @@ -3027,6 +2902,7 @@ pub enum MovementBlock_UpdateFlag_Living { orientation1: f32, position1: Vector3d, transport_guid: Guid, + transport_offset: Vector3d, }, HasPosition { orientation2: f32, @@ -3087,6 +2963,7 @@ impl MovementBlock_UpdateFlag_Living { + 4 // orientation1: f32 + 12 // position1: Vector3d + crate::util::packed_guid_size(&transport_guid) // transport_guid: PackedGuid + + 12 // transport_offset: Vector3d } Self::HasPosition { .. diff --git a/wow_world_messages/src/world/wrath/object.rs b/wow_world_messages/src/world/wrath/object.rs index 5b39707bca..895fe06fdd 100644 --- a/wow_world_messages/src/world/wrath/object.rs +++ b/wow_world_messages/src/world/wrath/object.rs @@ -6,7 +6,7 @@ use crate::wrath::{ UpdateMask, UpdateType, Vector3d, }; -/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:178`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L178): +/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:176`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L176): /// ```text /// struct Object { /// UpdateType update_type; diff --git a/wow_world_messages/src/world/wrath/smsg_compressed_update_object.rs b/wow_world_messages/src/world/wrath/smsg_compressed_update_object.rs index 216fffd946..9b5d709b75 100644 --- a/wow_world_messages/src/world/wrath/smsg_compressed_update_object.rs +++ b/wow_world_messages/src/world/wrath/smsg_compressed_update_object.rs @@ -250,6 +250,10 @@ impl crate::Message for SMSG_COMPRESSED_UPDATE_OBJECT { writeln!(s, " time_passed = {};", if_statement.time_passed).unwrap(); writeln!(s, " duration = {};", if_statement.duration).unwrap(); writeln!(s, " id = {};", if_statement.id).unwrap(); + writeln!(s, " duration_mod = {};", if if_statement.duration_mod.to_string().contains('.') { if_statement.duration_mod.to_string() } else { format!("{}.0", if_statement.duration_mod) }).unwrap(); + writeln!(s, " duration_mod_next = {};", if if_statement.duration_mod_next.to_string().contains('.') { if_statement.duration_mod_next.to_string() } else { format!("{}.0", if_statement.duration_mod_next) }).unwrap(); + writeln!(s, " vertical_acceleration = {};", if if_statement.vertical_acceleration.to_string().contains('.') { if_statement.vertical_acceleration.to_string() } else { format!("{}.0", if_statement.vertical_acceleration) }).unwrap(); + writeln!(s, " effect_start_time = {};", if if_statement.effect_start_time.to_string().contains('.') { if_statement.effect_start_time.to_string() } else { format!("{}.0", if_statement.effect_start_time) }).unwrap(); writeln!(s, " amount_of_nodes = {};", if_statement.nodes.len()).unwrap(); writeln!(s, " nodes = [").unwrap(); for v in if_statement.nodes.as_slice() { @@ -262,6 +266,7 @@ impl crate::Message for SMSG_COMPRESSED_UPDATE_OBJECT { writeln!(s, " }},").unwrap(); } writeln!(s, " ];").unwrap(); + writeln!(s, " mode = {};", if_statement.mode).unwrap(); // final_node: Vector3d writeln!(s, " final_node = {{").unwrap(); // Members @@ -278,6 +283,7 @@ impl crate::Message for SMSG_COMPRESSED_UPDATE_OBJECT { orientation1, position1, transport_guid, + transport_offset, } => { writeln!(s, " transport_guid = {};", transport_guid.guid()).unwrap(); // position1: Vector3d @@ -287,6 +293,14 @@ impl crate::Message for SMSG_COMPRESSED_UPDATE_OBJECT { writeln!(s, " y = {};", if position1.y.to_string().contains('.') { position1.y.to_string() } else { format!("{}.0", position1.y) }).unwrap(); writeln!(s, " z = {};", if position1.z.to_string().contains('.') { position1.z.to_string() } else { format!("{}.0", position1.z) }).unwrap(); + writeln!(s, " }};").unwrap(); + // transport_offset: Vector3d + writeln!(s, " transport_offset = {{").unwrap(); + // Members + writeln!(s, " x = {};", if transport_offset.x.to_string().contains('.') { transport_offset.x.to_string() } else { format!("{}.0", transport_offset.x) }).unwrap(); + writeln!(s, " y = {};", if transport_offset.y.to_string().contains('.') { transport_offset.y.to_string() } else { format!("{}.0", transport_offset.y) }).unwrap(); + writeln!(s, " z = {};", if transport_offset.z.to_string().contains('.') { transport_offset.z.to_string() } else { format!("{}.0", transport_offset.z) }).unwrap(); + writeln!(s, " }};").unwrap(); writeln!(s, " orientation1 = {};", if orientation1.to_string().contains('.') { orientation1.to_string() } else { format!("{}.0", orientation1) }).unwrap(); writeln!(s, " corpse_orientation = {};", if corpse_orientation.to_string().contains('.') { corpse_orientation.to_string() } else { format!("{}.0", corpse_orientation) }).unwrap(); @@ -499,6 +513,10 @@ impl crate::Message for SMSG_COMPRESSED_UPDATE_OBJECT { writeln!(s, " time_passed = {};", if_statement.time_passed).unwrap(); writeln!(s, " duration = {};", if_statement.duration).unwrap(); writeln!(s, " id = {};", if_statement.id).unwrap(); + writeln!(s, " duration_mod = {};", if if_statement.duration_mod.to_string().contains('.') { if_statement.duration_mod.to_string() } else { format!("{}.0", if_statement.duration_mod) }).unwrap(); + writeln!(s, " duration_mod_next = {};", if if_statement.duration_mod_next.to_string().contains('.') { if_statement.duration_mod_next.to_string() } else { format!("{}.0", if_statement.duration_mod_next) }).unwrap(); + writeln!(s, " vertical_acceleration = {};", if if_statement.vertical_acceleration.to_string().contains('.') { if_statement.vertical_acceleration.to_string() } else { format!("{}.0", if_statement.vertical_acceleration) }).unwrap(); + writeln!(s, " effect_start_time = {};", if if_statement.effect_start_time.to_string().contains('.') { if_statement.effect_start_time.to_string() } else { format!("{}.0", if_statement.effect_start_time) }).unwrap(); writeln!(s, " amount_of_nodes = {};", if_statement.nodes.len()).unwrap(); writeln!(s, " nodes = [").unwrap(); for v in if_statement.nodes.as_slice() { @@ -511,6 +529,7 @@ impl crate::Message for SMSG_COMPRESSED_UPDATE_OBJECT { writeln!(s, " }},").unwrap(); } writeln!(s, " ];").unwrap(); + writeln!(s, " mode = {};", if_statement.mode).unwrap(); // final_node: Vector3d writeln!(s, " final_node = {{").unwrap(); // Members @@ -527,6 +546,7 @@ impl crate::Message for SMSG_COMPRESSED_UPDATE_OBJECT { orientation1, position1, transport_guid, + transport_offset, } => { writeln!(s, " transport_guid = {};", transport_guid.guid()).unwrap(); // position1: Vector3d @@ -536,6 +556,14 @@ impl crate::Message for SMSG_COMPRESSED_UPDATE_OBJECT { writeln!(s, " y = {};", if position1.y.to_string().contains('.') { position1.y.to_string() } else { format!("{}.0", position1.y) }).unwrap(); writeln!(s, " z = {};", if position1.z.to_string().contains('.') { position1.z.to_string() } else { format!("{}.0", position1.z) }).unwrap(); + writeln!(s, " }};").unwrap(); + // transport_offset: Vector3d + writeln!(s, " transport_offset = {{").unwrap(); + // Members + writeln!(s, " x = {};", if transport_offset.x.to_string().contains('.') { transport_offset.x.to_string() } else { format!("{}.0", transport_offset.x) }).unwrap(); + writeln!(s, " y = {};", if transport_offset.y.to_string().contains('.') { transport_offset.y.to_string() } else { format!("{}.0", transport_offset.y) }).unwrap(); + writeln!(s, " z = {};", if transport_offset.z.to_string().contains('.') { transport_offset.z.to_string() } else { format!("{}.0", transport_offset.z) }).unwrap(); + writeln!(s, " }};").unwrap(); writeln!(s, " orientation1 = {};", if orientation1.to_string().contains('.') { orientation1.to_string() } else { format!("{}.0", orientation1) }).unwrap(); writeln!(s, " corpse_orientation = {};", if corpse_orientation.to_string().contains('.') { corpse_orientation.to_string() } else { format!("{}.0", corpse_orientation) }).unwrap(); @@ -749,6 +777,10 @@ impl crate::Message for SMSG_COMPRESSED_UPDATE_OBJECT { writeln!(s, " time_passed = {};", if_statement.time_passed).unwrap(); writeln!(s, " duration = {};", if_statement.duration).unwrap(); writeln!(s, " id = {};", if_statement.id).unwrap(); + writeln!(s, " duration_mod = {};", if if_statement.duration_mod.to_string().contains('.') { if_statement.duration_mod.to_string() } else { format!("{}.0", if_statement.duration_mod) }).unwrap(); + writeln!(s, " duration_mod_next = {};", if if_statement.duration_mod_next.to_string().contains('.') { if_statement.duration_mod_next.to_string() } else { format!("{}.0", if_statement.duration_mod_next) }).unwrap(); + writeln!(s, " vertical_acceleration = {};", if if_statement.vertical_acceleration.to_string().contains('.') { if_statement.vertical_acceleration.to_string() } else { format!("{}.0", if_statement.vertical_acceleration) }).unwrap(); + writeln!(s, " effect_start_time = {};", if if_statement.effect_start_time.to_string().contains('.') { if_statement.effect_start_time.to_string() } else { format!("{}.0", if_statement.effect_start_time) }).unwrap(); writeln!(s, " amount_of_nodes = {};", if_statement.nodes.len()).unwrap(); writeln!(s, " nodes = [").unwrap(); for v in if_statement.nodes.as_slice() { @@ -761,6 +793,7 @@ impl crate::Message for SMSG_COMPRESSED_UPDATE_OBJECT { writeln!(s, " }},").unwrap(); } writeln!(s, " ];").unwrap(); + writeln!(s, " mode = {};", if_statement.mode).unwrap(); // final_node: Vector3d writeln!(s, " final_node = {{").unwrap(); // Members @@ -777,6 +810,7 @@ impl crate::Message for SMSG_COMPRESSED_UPDATE_OBJECT { orientation1, position1, transport_guid, + transport_offset, } => { writeln!(s, " transport_guid = {};", transport_guid.guid()).unwrap(); // position1: Vector3d @@ -786,6 +820,14 @@ impl crate::Message for SMSG_COMPRESSED_UPDATE_OBJECT { writeln!(s, " y = {};", if position1.y.to_string().contains('.') { position1.y.to_string() } else { format!("{}.0", position1.y) }).unwrap(); writeln!(s, " z = {};", if position1.z.to_string().contains('.') { position1.z.to_string() } else { format!("{}.0", position1.z) }).unwrap(); + writeln!(s, " }};").unwrap(); + // transport_offset: Vector3d + writeln!(s, " transport_offset = {{").unwrap(); + // Members + writeln!(s, " x = {};", if transport_offset.x.to_string().contains('.') { transport_offset.x.to_string() } else { format!("{}.0", transport_offset.x) }).unwrap(); + writeln!(s, " y = {};", if transport_offset.y.to_string().contains('.') { transport_offset.y.to_string() } else { format!("{}.0", transport_offset.y) }).unwrap(); + writeln!(s, " z = {};", if transport_offset.z.to_string().contains('.') { transport_offset.z.to_string() } else { format!("{}.0", transport_offset.z) }).unwrap(); + writeln!(s, " }};").unwrap(); writeln!(s, " orientation1 = {};", if orientation1.to_string().contains('.') { orientation1.to_string() } else { format!("{}.0", orientation1) }).unwrap(); writeln!(s, " corpse_orientation = {};", if corpse_orientation.to_string().contains('.') { corpse_orientation.to_string() } else { format!("{}.0", corpse_orientation) }).unwrap(); diff --git a/wow_world_messages/src/world/wrath/smsg_monster_move.rs b/wow_world_messages/src/world/wrath/smsg_monster_move.rs index ab69753e8c..ca7b0ee098 100644 --- a/wow_world_messages/src/world/wrath/smsg_monster_move.rs +++ b/wow_world_messages/src/world/wrath/smsg_monster_move.rs @@ -563,198 +563,6 @@ impl SMSG_MONSTER_MOVE_SplineFlag { self } - pub const fn new_unknown3() -> Self { - Self { - inner: SplineFlag::UNKNOWN3, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown3(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN3; - self - } - - pub const fn get_unknown3(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN3) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown3(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN3.reverse_bits(); - self - } - - pub const fn new_unknown4() -> Self { - Self { - inner: SplineFlag::UNKNOWN4, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown4(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN4; - self - } - - pub const fn get_unknown4(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN4) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown4(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN4.reverse_bits(); - self - } - - pub const fn new_unknown5() -> Self { - Self { - inner: SplineFlag::UNKNOWN5, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown5(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN5; - self - } - - pub const fn get_unknown5(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN5) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown5(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN5.reverse_bits(); - self - } - - pub const fn new_unknown6() -> Self { - Self { - inner: SplineFlag::UNKNOWN6, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown6(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN6; - self - } - - pub const fn get_unknown6(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN6) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown6(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN6.reverse_bits(); - self - } - - pub const fn new_unknown7() -> Self { - Self { - inner: SplineFlag::UNKNOWN7, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown7(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN7; - self - } - - pub const fn get_unknown7(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN7) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown7(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN7.reverse_bits(); - self - } - - pub const fn new_unknown8() -> Self { - Self { - inner: SplineFlag::UNKNOWN8, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown8(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN8; - self - } - - pub const fn get_unknown8(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN8) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown8(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN8.reverse_bits(); - self - } - - pub const fn new_runmode() -> Self { - Self { - inner: SplineFlag::RUNMODE, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_runmode(mut self) -> Self { - self.inner |= SplineFlag::RUNMODE; - self - } - - pub const fn get_runmode(&self) -> bool { - (self.inner & SplineFlag::RUNMODE) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_runmode(mut self) -> Self { - self.inner &= SplineFlag::RUNMODE.reverse_bits(); - self - } - - pub const fn new_flying() -> Self { - Self { - inner: SplineFlag::FLYING, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_flying(mut self) -> Self { - self.inner |= SplineFlag::FLYING; - self - } - - pub const fn get_flying(&self) -> bool { - (self.inner & SplineFlag::FLYING) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_flying(mut self) -> Self { - self.inner &= SplineFlag::FLYING.reverse_bits(); - self - } - pub const fn new_no_spline() -> Self { Self { inner: SplineFlag::NO_SPLINE, @@ -805,99 +613,75 @@ impl SMSG_MONSTER_MOVE_SplineFlag { self } - pub const fn new_unknown13() -> Self { - Self { - inner: SplineFlag::UNKNOWN13, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown13(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN13; - self - } - - pub const fn get_unknown13(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN13) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown13(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN13.reverse_bits(); - self - } - - pub const fn new_unknown14() -> Self { + pub const fn new_walk_mode() -> Self { Self { - inner: SplineFlag::UNKNOWN14, + inner: SplineFlag::WALK_MODE, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown14(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN14; + pub fn set_walk_mode(mut self) -> Self { + self.inner |= SplineFlag::WALK_MODE; self } - pub const fn get_unknown14(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN14) != 0 + pub const fn get_walk_mode(&self) -> bool { + (self.inner & SplineFlag::WALK_MODE) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown14(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN14.reverse_bits(); + pub fn clear_walk_mode(mut self) -> Self { + self.inner &= SplineFlag::WALK_MODE.reverse_bits(); self } - pub const fn new_unknown15() -> Self { + pub const fn new_flying() -> Self { Self { - inner: SplineFlag::UNKNOWN15, + inner: SplineFlag::FLYING, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown15(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN15; + pub fn set_flying(mut self) -> Self { + self.inner |= SplineFlag::FLYING; self } - pub const fn get_unknown15(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN15) != 0 + pub const fn get_flying(&self) -> bool { + (self.inner & SplineFlag::FLYING) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown15(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN15.reverse_bits(); + pub fn clear_flying(mut self) -> Self { + self.inner &= SplineFlag::FLYING.reverse_bits(); self } - pub const fn new_unknown16() -> Self { + pub const fn new_orientation_fixed() -> Self { Self { - inner: SplineFlag::UNKNOWN16, + inner: SplineFlag::ORIENTATION_FIXED, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown16(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN16; + pub fn set_orientation_fixed(mut self) -> Self { + self.inner |= SplineFlag::ORIENTATION_FIXED; self } - pub const fn get_unknown16(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN16) != 0 + pub const fn get_orientation_fixed(&self) -> bool { + (self.inner & SplineFlag::ORIENTATION_FIXED) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown16(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN16.reverse_bits(); + pub fn clear_orientation_fixed(mut self) -> Self { + self.inner &= SplineFlag::ORIENTATION_FIXED.reverse_bits(); self } @@ -973,27 +757,27 @@ impl SMSG_MONSTER_MOVE_SplineFlag { self } - pub const fn new_unknown19() -> Self { + pub const fn new_catmullrom() -> Self { Self { - inner: SplineFlag::UNKNOWN19, + inner: SplineFlag::CATMULLROM, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown19(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN19; + pub fn set_catmullrom(mut self) -> Self { + self.inner |= SplineFlag::CATMULLROM; self } - pub const fn get_unknown19(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN19) != 0 + pub const fn get_catmullrom(&self) -> bool { + (self.inner & SplineFlag::CATMULLROM) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown19(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN19.reverse_bits(); + pub fn clear_catmullrom(mut self) -> Self { + self.inner &= SplineFlag::CATMULLROM.reverse_bits(); self } @@ -1047,6 +831,30 @@ impl SMSG_MONSTER_MOVE_SplineFlag { self } + pub const fn new_animation() -> Self { + Self { + inner: SplineFlag::ANIMATION, + parabolic: None, + enter_cycle: None, + } + } + + #[allow(clippy::missing_const_for_fn)] // false positive + pub fn set_animation(mut self) -> Self { + self.inner |= SplineFlag::ANIMATION; + self + } + + pub const fn get_animation(&self) -> bool { + (self.inner & SplineFlag::ANIMATION) != 0 + } + + #[allow(clippy::missing_const_for_fn)] // false positive + pub fn clear_animation(mut self) -> Self { + self.inner &= SplineFlag::ANIMATION.reverse_bits(); + self + } + pub const fn new_frozen() -> Self { Self { inner: SplineFlag::FROZEN, @@ -1071,219 +879,219 @@ impl SMSG_MONSTER_MOVE_SplineFlag { self } - pub const fn new_unknown23() -> Self { + pub const fn new_transport_enter() -> Self { Self { - inner: SplineFlag::UNKNOWN23, + inner: SplineFlag::TRANSPORT_ENTER, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown23(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN23; + pub fn set_transport_enter(mut self) -> Self { + self.inner |= SplineFlag::TRANSPORT_ENTER; self } - pub const fn get_unknown23(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN23) != 0 + pub const fn get_transport_enter(&self) -> bool { + (self.inner & SplineFlag::TRANSPORT_ENTER) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown23(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN23.reverse_bits(); + pub fn clear_transport_enter(mut self) -> Self { + self.inner &= SplineFlag::TRANSPORT_ENTER.reverse_bits(); self } - pub const fn new_unknown24() -> Self { + pub const fn new_transport_exit() -> Self { Self { - inner: SplineFlag::UNKNOWN24, + inner: SplineFlag::TRANSPORT_EXIT, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown24(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN24; + pub fn set_transport_exit(mut self) -> Self { + self.inner |= SplineFlag::TRANSPORT_EXIT; self } - pub const fn get_unknown24(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN24) != 0 + pub const fn get_transport_exit(&self) -> bool { + (self.inner & SplineFlag::TRANSPORT_EXIT) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown24(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN24.reverse_bits(); + pub fn clear_transport_exit(mut self) -> Self { + self.inner &= SplineFlag::TRANSPORT_EXIT.reverse_bits(); self } - pub const fn new_unknown25() -> Self { + pub const fn new_unknown7() -> Self { Self { - inner: SplineFlag::UNKNOWN25, + inner: SplineFlag::UNKNOWN7, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown25(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN25; + pub fn set_unknown7(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN7; self } - pub const fn get_unknown25(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN25) != 0 + pub const fn get_unknown7(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN7) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown25(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN25.reverse_bits(); + pub fn clear_unknown7(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN7.reverse_bits(); self } - pub const fn new_unknown26() -> Self { + pub const fn new_unknown8() -> Self { Self { - inner: SplineFlag::UNKNOWN26, + inner: SplineFlag::UNKNOWN8, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown26(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN26; + pub fn set_unknown8(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN8; self } - pub const fn get_unknown26(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN26) != 0 + pub const fn get_unknown8(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN8) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown26(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN26.reverse_bits(); + pub fn clear_unknown8(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN8.reverse_bits(); self } - pub const fn new_unknown27() -> Self { + pub const fn new_orientation_inversed() -> Self { Self { - inner: SplineFlag::UNKNOWN27, + inner: SplineFlag::ORIENTATION_INVERSED, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown27(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN27; + pub fn set_orientation_inversed(mut self) -> Self { + self.inner |= SplineFlag::ORIENTATION_INVERSED; self } - pub const fn get_unknown27(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN27) != 0 + pub const fn get_orientation_inversed(&self) -> bool { + (self.inner & SplineFlag::ORIENTATION_INVERSED) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown27(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN27.reverse_bits(); + pub fn clear_orientation_inversed(mut self) -> Self { + self.inner &= SplineFlag::ORIENTATION_INVERSED.reverse_bits(); self } - pub const fn new_unknown28() -> Self { + pub const fn new_unknown10() -> Self { Self { - inner: SplineFlag::UNKNOWN28, + inner: SplineFlag::UNKNOWN10, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown28(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN28; + pub fn set_unknown10(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN10; self } - pub const fn get_unknown28(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN28) != 0 + pub const fn get_unknown10(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN10) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown28(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN28.reverse_bits(); + pub fn clear_unknown10(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN10.reverse_bits(); self } - pub const fn new_unknown29() -> Self { + pub const fn new_unknown11() -> Self { Self { - inner: SplineFlag::UNKNOWN29, + inner: SplineFlag::UNKNOWN11, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown29(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN29; + pub fn set_unknown11(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN11; self } - pub const fn get_unknown29(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN29) != 0 + pub const fn get_unknown11(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN11) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown29(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN29.reverse_bits(); + pub fn clear_unknown11(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN11.reverse_bits(); self } - pub const fn new_unknown30() -> Self { + pub const fn new_unknown12() -> Self { Self { - inner: SplineFlag::UNKNOWN30, + inner: SplineFlag::UNKNOWN12, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown30(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN30; + pub fn set_unknown12(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN12; self } - pub const fn get_unknown30(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN30) != 0 + pub const fn get_unknown12(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN12) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown30(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN30.reverse_bits(); + pub fn clear_unknown12(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN12.reverse_bits(); self } - pub const fn new_unknown31() -> Self { + pub const fn new_unknown13() -> Self { Self { - inner: SplineFlag::UNKNOWN31, + inner: SplineFlag::UNKNOWN13, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown31(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN31; + pub fn set_unknown13(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN13; self } - pub const fn get_unknown31(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN31) != 0 + pub const fn get_unknown13(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN13) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown31(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN31.reverse_bits(); + pub fn clear_unknown13(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN13.reverse_bits(); self } diff --git a/wow_world_messages/src/world/wrath/smsg_monster_move_transport.rs b/wow_world_messages/src/world/wrath/smsg_monster_move_transport.rs index ac12060ab8..1a02a111a0 100644 --- a/wow_world_messages/src/world/wrath/smsg_monster_move_transport.rs +++ b/wow_world_messages/src/world/wrath/smsg_monster_move_transport.rs @@ -575,198 +575,6 @@ impl SMSG_MONSTER_MOVE_TRANSPORT_SplineFlag { self } - pub const fn new_unknown3() -> Self { - Self { - inner: SplineFlag::UNKNOWN3, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown3(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN3; - self - } - - pub const fn get_unknown3(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN3) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown3(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN3.reverse_bits(); - self - } - - pub const fn new_unknown4() -> Self { - Self { - inner: SplineFlag::UNKNOWN4, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown4(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN4; - self - } - - pub const fn get_unknown4(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN4) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown4(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN4.reverse_bits(); - self - } - - pub const fn new_unknown5() -> Self { - Self { - inner: SplineFlag::UNKNOWN5, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown5(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN5; - self - } - - pub const fn get_unknown5(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN5) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown5(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN5.reverse_bits(); - self - } - - pub const fn new_unknown6() -> Self { - Self { - inner: SplineFlag::UNKNOWN6, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown6(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN6; - self - } - - pub const fn get_unknown6(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN6) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown6(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN6.reverse_bits(); - self - } - - pub const fn new_unknown7() -> Self { - Self { - inner: SplineFlag::UNKNOWN7, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown7(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN7; - self - } - - pub const fn get_unknown7(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN7) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown7(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN7.reverse_bits(); - self - } - - pub const fn new_unknown8() -> Self { - Self { - inner: SplineFlag::UNKNOWN8, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown8(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN8; - self - } - - pub const fn get_unknown8(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN8) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown8(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN8.reverse_bits(); - self - } - - pub const fn new_runmode() -> Self { - Self { - inner: SplineFlag::RUNMODE, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_runmode(mut self) -> Self { - self.inner |= SplineFlag::RUNMODE; - self - } - - pub const fn get_runmode(&self) -> bool { - (self.inner & SplineFlag::RUNMODE) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_runmode(mut self) -> Self { - self.inner &= SplineFlag::RUNMODE.reverse_bits(); - self - } - - pub const fn new_flying() -> Self { - Self { - inner: SplineFlag::FLYING, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_flying(mut self) -> Self { - self.inner |= SplineFlag::FLYING; - self - } - - pub const fn get_flying(&self) -> bool { - (self.inner & SplineFlag::FLYING) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_flying(mut self) -> Self { - self.inner &= SplineFlag::FLYING.reverse_bits(); - self - } - pub const fn new_no_spline() -> Self { Self { inner: SplineFlag::NO_SPLINE, @@ -817,99 +625,75 @@ impl SMSG_MONSTER_MOVE_TRANSPORT_SplineFlag { self } - pub const fn new_unknown13() -> Self { - Self { - inner: SplineFlag::UNKNOWN13, - parabolic: None, - enter_cycle: None, - } - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown13(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN13; - self - } - - pub const fn get_unknown13(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN13) != 0 - } - - #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown13(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN13.reverse_bits(); - self - } - - pub const fn new_unknown14() -> Self { + pub const fn new_walk_mode() -> Self { Self { - inner: SplineFlag::UNKNOWN14, + inner: SplineFlag::WALK_MODE, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown14(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN14; + pub fn set_walk_mode(mut self) -> Self { + self.inner |= SplineFlag::WALK_MODE; self } - pub const fn get_unknown14(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN14) != 0 + pub const fn get_walk_mode(&self) -> bool { + (self.inner & SplineFlag::WALK_MODE) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown14(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN14.reverse_bits(); + pub fn clear_walk_mode(mut self) -> Self { + self.inner &= SplineFlag::WALK_MODE.reverse_bits(); self } - pub const fn new_unknown15() -> Self { + pub const fn new_flying() -> Self { Self { - inner: SplineFlag::UNKNOWN15, + inner: SplineFlag::FLYING, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown15(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN15; + pub fn set_flying(mut self) -> Self { + self.inner |= SplineFlag::FLYING; self } - pub const fn get_unknown15(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN15) != 0 + pub const fn get_flying(&self) -> bool { + (self.inner & SplineFlag::FLYING) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown15(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN15.reverse_bits(); + pub fn clear_flying(mut self) -> Self { + self.inner &= SplineFlag::FLYING.reverse_bits(); self } - pub const fn new_unknown16() -> Self { + pub const fn new_orientation_fixed() -> Self { Self { - inner: SplineFlag::UNKNOWN16, + inner: SplineFlag::ORIENTATION_FIXED, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown16(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN16; + pub fn set_orientation_fixed(mut self) -> Self { + self.inner |= SplineFlag::ORIENTATION_FIXED; self } - pub const fn get_unknown16(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN16) != 0 + pub const fn get_orientation_fixed(&self) -> bool { + (self.inner & SplineFlag::ORIENTATION_FIXED) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown16(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN16.reverse_bits(); + pub fn clear_orientation_fixed(mut self) -> Self { + self.inner &= SplineFlag::ORIENTATION_FIXED.reverse_bits(); self } @@ -985,27 +769,27 @@ impl SMSG_MONSTER_MOVE_TRANSPORT_SplineFlag { self } - pub const fn new_unknown19() -> Self { + pub const fn new_catmullrom() -> Self { Self { - inner: SplineFlag::UNKNOWN19, + inner: SplineFlag::CATMULLROM, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown19(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN19; + pub fn set_catmullrom(mut self) -> Self { + self.inner |= SplineFlag::CATMULLROM; self } - pub const fn get_unknown19(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN19) != 0 + pub const fn get_catmullrom(&self) -> bool { + (self.inner & SplineFlag::CATMULLROM) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown19(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN19.reverse_bits(); + pub fn clear_catmullrom(mut self) -> Self { + self.inner &= SplineFlag::CATMULLROM.reverse_bits(); self } @@ -1059,6 +843,30 @@ impl SMSG_MONSTER_MOVE_TRANSPORT_SplineFlag { self } + pub const fn new_animation() -> Self { + Self { + inner: SplineFlag::ANIMATION, + parabolic: None, + enter_cycle: None, + } + } + + #[allow(clippy::missing_const_for_fn)] // false positive + pub fn set_animation(mut self) -> Self { + self.inner |= SplineFlag::ANIMATION; + self + } + + pub const fn get_animation(&self) -> bool { + (self.inner & SplineFlag::ANIMATION) != 0 + } + + #[allow(clippy::missing_const_for_fn)] // false positive + pub fn clear_animation(mut self) -> Self { + self.inner &= SplineFlag::ANIMATION.reverse_bits(); + self + } + pub const fn new_frozen() -> Self { Self { inner: SplineFlag::FROZEN, @@ -1083,219 +891,219 @@ impl SMSG_MONSTER_MOVE_TRANSPORT_SplineFlag { self } - pub const fn new_unknown23() -> Self { + pub const fn new_transport_enter() -> Self { Self { - inner: SplineFlag::UNKNOWN23, + inner: SplineFlag::TRANSPORT_ENTER, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown23(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN23; + pub fn set_transport_enter(mut self) -> Self { + self.inner |= SplineFlag::TRANSPORT_ENTER; self } - pub const fn get_unknown23(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN23) != 0 + pub const fn get_transport_enter(&self) -> bool { + (self.inner & SplineFlag::TRANSPORT_ENTER) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown23(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN23.reverse_bits(); + pub fn clear_transport_enter(mut self) -> Self { + self.inner &= SplineFlag::TRANSPORT_ENTER.reverse_bits(); self } - pub const fn new_unknown24() -> Self { + pub const fn new_transport_exit() -> Self { Self { - inner: SplineFlag::UNKNOWN24, + inner: SplineFlag::TRANSPORT_EXIT, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown24(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN24; + pub fn set_transport_exit(mut self) -> Self { + self.inner |= SplineFlag::TRANSPORT_EXIT; self } - pub const fn get_unknown24(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN24) != 0 + pub const fn get_transport_exit(&self) -> bool { + (self.inner & SplineFlag::TRANSPORT_EXIT) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown24(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN24.reverse_bits(); + pub fn clear_transport_exit(mut self) -> Self { + self.inner &= SplineFlag::TRANSPORT_EXIT.reverse_bits(); self } - pub const fn new_unknown25() -> Self { + pub const fn new_unknown7() -> Self { Self { - inner: SplineFlag::UNKNOWN25, + inner: SplineFlag::UNKNOWN7, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown25(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN25; + pub fn set_unknown7(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN7; self } - pub const fn get_unknown25(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN25) != 0 + pub const fn get_unknown7(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN7) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown25(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN25.reverse_bits(); + pub fn clear_unknown7(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN7.reverse_bits(); self } - pub const fn new_unknown26() -> Self { + pub const fn new_unknown8() -> Self { Self { - inner: SplineFlag::UNKNOWN26, + inner: SplineFlag::UNKNOWN8, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown26(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN26; + pub fn set_unknown8(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN8; self } - pub const fn get_unknown26(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN26) != 0 + pub const fn get_unknown8(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN8) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown26(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN26.reverse_bits(); + pub fn clear_unknown8(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN8.reverse_bits(); self } - pub const fn new_unknown27() -> Self { + pub const fn new_orientation_inversed() -> Self { Self { - inner: SplineFlag::UNKNOWN27, + inner: SplineFlag::ORIENTATION_INVERSED, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown27(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN27; + pub fn set_orientation_inversed(mut self) -> Self { + self.inner |= SplineFlag::ORIENTATION_INVERSED; self } - pub const fn get_unknown27(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN27) != 0 + pub const fn get_orientation_inversed(&self) -> bool { + (self.inner & SplineFlag::ORIENTATION_INVERSED) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown27(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN27.reverse_bits(); + pub fn clear_orientation_inversed(mut self) -> Self { + self.inner &= SplineFlag::ORIENTATION_INVERSED.reverse_bits(); self } - pub const fn new_unknown28() -> Self { + pub const fn new_unknown10() -> Self { Self { - inner: SplineFlag::UNKNOWN28, + inner: SplineFlag::UNKNOWN10, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown28(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN28; + pub fn set_unknown10(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN10; self } - pub const fn get_unknown28(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN28) != 0 + pub const fn get_unknown10(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN10) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown28(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN28.reverse_bits(); + pub fn clear_unknown10(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN10.reverse_bits(); self } - pub const fn new_unknown29() -> Self { + pub const fn new_unknown11() -> Self { Self { - inner: SplineFlag::UNKNOWN29, + inner: SplineFlag::UNKNOWN11, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown29(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN29; + pub fn set_unknown11(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN11; self } - pub const fn get_unknown29(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN29) != 0 + pub const fn get_unknown11(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN11) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown29(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN29.reverse_bits(); + pub fn clear_unknown11(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN11.reverse_bits(); self } - pub const fn new_unknown30() -> Self { + pub const fn new_unknown12() -> Self { Self { - inner: SplineFlag::UNKNOWN30, + inner: SplineFlag::UNKNOWN12, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown30(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN30; + pub fn set_unknown12(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN12; self } - pub const fn get_unknown30(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN30) != 0 + pub const fn get_unknown12(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN12) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown30(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN30.reverse_bits(); + pub fn clear_unknown12(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN12.reverse_bits(); self } - pub const fn new_unknown31() -> Self { + pub const fn new_unknown13() -> Self { Self { - inner: SplineFlag::UNKNOWN31, + inner: SplineFlag::UNKNOWN13, parabolic: None, enter_cycle: None, } } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn set_unknown31(mut self) -> Self { - self.inner |= SplineFlag::UNKNOWN31; + pub fn set_unknown13(mut self) -> Self { + self.inner |= SplineFlag::UNKNOWN13; self } - pub const fn get_unknown31(&self) -> bool { - (self.inner & SplineFlag::UNKNOWN31) != 0 + pub const fn get_unknown13(&self) -> bool { + (self.inner & SplineFlag::UNKNOWN13) != 0 } #[allow(clippy::missing_const_for_fn)] // false positive - pub fn clear_unknown31(mut self) -> Self { - self.inner &= SplineFlag::UNKNOWN31.reverse_bits(); + pub fn clear_unknown13(mut self) -> Self { + self.inner &= SplineFlag::UNKNOWN13.reverse_bits(); self } diff --git a/wow_world_messages/src/world/wrath/smsg_update_object.rs b/wow_world_messages/src/world/wrath/smsg_update_object.rs index 3f23171f1d..d599a74e3d 100644 --- a/wow_world_messages/src/world/wrath/smsg_update_object.rs +++ b/wow_world_messages/src/world/wrath/smsg_update_object.rs @@ -2,7 +2,7 @@ use std::io::{Read, Write}; use crate::wrath::Object; -/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:201`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L201): +/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:199`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L199): /// ```text /// smsg SMSG_UPDATE_OBJECT = 0x00A9 { /// u32 amount_of_objects; @@ -154,7 +154,7 @@ mod test { } - // Generated from `wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm` line 206. + // Generated from `wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm` line 204. #[cfg(feature = "sync")] #[cfg_attr(feature = "sync", test)] fn smsg_update_object0() { @@ -174,7 +174,7 @@ mod test { assert_eq!(dest, RAW0); } - // Generated from `wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm` line 206. + // Generated from `wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm` line 204. #[cfg(feature = "tokio")] #[cfg_attr(feature = "tokio", tokio::test)] async fn tokio_smsg_update_object0() { @@ -194,7 +194,7 @@ mod test { assert_eq!(dest, RAW0); } - // Generated from `wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm` line 206. + // Generated from `wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm` line 204. #[cfg(feature = "async-std")] #[cfg_attr(feature = "async-std", async_std::test)] async fn astd_smsg_update_object0() { diff --git a/wowm_language/src/docs/movementblock.md b/wowm_language/src/docs/movementblock.md index 68a33b56e7..5391777e3f 100644 --- a/wowm_language/src/docs/movementblock.md +++ b/wowm_language/src/docs/movementblock.md @@ -165,7 +165,7 @@ Used in: ### Wowm Representation -Autogenerated from `wowm` file at [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:80`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L80). +Autogenerated from `wowm` file at [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:72`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L72). ```rust,ignore struct MovementBlock { UpdateFlag update_flag; @@ -223,14 +223,20 @@ struct MovementBlock { 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; } diff --git a/wowm_language/src/docs/object.md b/wowm_language/src/docs/object.md index 37ee2fe680..d5046b329f 100644 --- a/wowm_language/src/docs/object.md +++ b/wowm_language/src/docs/object.md @@ -150,7 +150,7 @@ Used in: ### Wowm Representation -Autogenerated from `wowm` file at [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:178`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L178). +Autogenerated from `wowm` file at [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:176`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L176). ```rust,ignore struct Object { UpdateType update_type; diff --git a/wowm_language/src/docs/objecttype.md b/wowm_language/src/docs/objecttype.md index 0fae7d8b64..19acd521ff 100644 --- a/wowm_language/src/docs/objecttype.md +++ b/wowm_language/src/docs/objecttype.md @@ -74,7 +74,7 @@ Used in: ### Wowm Representation -Autogenerated from `wowm` file at [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:69`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L69). +Autogenerated from `wowm` file at [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:61`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L61). ```rust,ignore enum ObjectType : u8 { diff --git a/wowm_language/src/docs/smsg_update_object.md b/wowm_language/src/docs/smsg_update_object.md index fc27b8ded1..90736df105 100644 --- a/wowm_language/src/docs/smsg_update_object.md +++ b/wowm_language/src/docs/smsg_update_object.md @@ -155,7 +155,7 @@ SMSG have a header of 4 bytes. ### Wowm Representation -Autogenerated from `wowm` file at [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:201`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L201). +Autogenerated from `wowm` file at [`wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm:199`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gameobject/smsg_update_object_3_3_5.wowm#L199). ```rust,ignore smsg SMSG_UPDATE_OBJECT = 0x00A9 { u32 amount_of_objects; diff --git a/wowm_language/src/docs/splineflag.md b/wowm_language/src/docs/splineflag.md index 3dcef1f98b..0afd226c88 100644 --- a/wowm_language/src/docs/splineflag.md +++ b/wowm_language/src/docs/splineflag.md @@ -97,38 +97,30 @@ Autogenerated from `wowm` file at [`wow_message_parser/wowm/world/gameobject/sms ```rust,ignore flag SplineFlag : u32 { NONE = 0x00000000; - DONE = 0x00000001; - FALLING = 0x00000002; - UNKNOWN3 = 0x00000004; - UNKNOWN4 = 0x00000008; - UNKNOWN5 = 0x00000010; - UNKNOWN6 = 0x00000020; - UNKNOWN7 = 0x00000040; - UNKNOWN8 = 0x00000080; - RUNMODE = 0x00000100; - FLYING = 0x00000200; + DONE = 0x00000100; + FALLING = 0x00000200; NO_SPLINE = 0x00000400; PARABOLIC = 0x00000800; - UNKNOWN13 = 0x00001000; - UNKNOWN14 = 0x00002000; - UNKNOWN15 = 0x00004000; - UNKNOWN16 = 0x00008000; - FINAL_POINT = 0x00010000; - FINAL_TARGET = 0x00020000; - FINAL_ANGLE = 0x00040000; - UNKNOWN19 = 0x00080000; - CYCLIC = 0x00100000; - ENTER_CYCLE = 0x00200000; + WALK_MODE = 0x00001000; + FLYING = 0x00002000; + ORIENTATION_FIXED = 0x00004000; + FINAL_POINT = 0x00008000; + FINAL_TARGET = 0x00010000; + FINAL_ANGLE = 0x00020000; + CATMULLROM = 0x00040000; + CYCLIC = 0x00080000; + ENTER_CYCLE = 0x00100000; + ANIMATION = 0x00200000; FROZEN = 0x00400000; - UNKNOWN23 = 0x00800000; - UNKNOWN24 = 0x01000000; - UNKNOWN25 = 0x02000000; - UNKNOWN26 = 0x04000000; - UNKNOWN27 = 0x08000000; - UNKNOWN28 = 0x10000000; - UNKNOWN29 = 0x20000000; - UNKNOWN30 = 0x40000000; - UNKNOWN31 = 0x80000000; + TRANSPORT_ENTER = 0x00800000; + TRANSPORT_EXIT = 0x01000000; + UNKNOWN7 = 0x02000000; + UNKNOWN8 = 0x04000000; + ORIENTATION_INVERSED = 0x08000000; + UNKNOWN10 = 0x10000000; + UNKNOWN11 = 0x20000000; + UNKNOWN12 = 0x40000000; + UNKNOWN13 = 0x80000000; } ``` ### Type @@ -137,38 +129,30 @@ The basic type is `u32`, a 4 byte (32 bit) little endian integer. | Enumerator | Value | Comment | | --------- | -------- | ------- | | `NONE` | 0 (0x00) | | -| `DONE` | 1 (0x01) | | -| `FALLING` | 2 (0x02) | vmangos: Affects elevation computation | -| `UNKNOWN3` | 4 (0x04) | | -| `UNKNOWN4` | 8 (0x08) | | -| `UNKNOWN5` | 16 (0x10) | | -| `UNKNOWN6` | 32 (0x20) | | -| `UNKNOWN7` | 64 (0x40) | | -| `UNKNOWN8` | 128 (0x80) | | -| `RUNMODE` | 256 (0x100) | | -| `FLYING` | 512 (0x200) | vmangos: Smooth movement(Catmullrom interpolation mode), flying animation | +| `DONE` | 256 (0x100) | | +| `FALLING` | 512 (0x200) | vmangos: Affects elevation computation | | `NO_SPLINE` | 1024 (0x400) | | | `PARABOLIC` | 2048 (0x800) | | -| `UNKNOWN13` | 4096 (0x1000) | | -| `UNKNOWN14` | 8192 (0x2000) | | -| `UNKNOWN15` | 16384 (0x4000) | | -| `UNKNOWN16` | 32768 (0x8000) | | -| `FINAL_POINT` | 65536 (0x10000) | | -| `FINAL_TARGET` | 131072 (0x20000) | | -| `FINAL_ANGLE` | 262144 (0x40000) | | -| `UNKNOWN19` | 524288 (0x80000) | vmangos: exists, but unknown what it does | -| `CYCLIC` | 1048576 (0x100000) | vmangos: Movement by cycled spline | -| `ENTER_CYCLE` | 2097152 (0x200000) | vmangos: Everytimes appears with cyclic flag in monster move packet, erases first spline vertex after first cycle done | +| `WALK_MODE` | 4096 (0x1000) | | +| `FLYING` | 8192 (0x2000) | | +| `ORIENTATION_FIXED` | 16384 (0x4000) | | +| `FINAL_POINT` | 32768 (0x8000) | | +| `FINAL_TARGET` | 65536 (0x10000) | | +| `FINAL_ANGLE` | 131072 (0x20000) | | +| `CATMULLROM` | 262144 (0x40000) | azerothcore: Used Catmullrom interpolation mode | +| `CYCLIC` | 524288 (0x80000) | azerothcore: Movement by cycled spline | +| `ENTER_CYCLE` | 1048576 (0x100000) | azerothcore: Everytimes appears with cyclic flag in monster move packet, erases first spline vertex after first cycle done | +| `ANIMATION` | 2097152 (0x200000) | azerothcore: Plays animation after some time passed | | `FROZEN` | 4194304 (0x400000) | vmangos: Will never arrive | -| `UNKNOWN23` | 8388608 (0x800000) | | -| `UNKNOWN24` | 16777216 (0x1000000) | | -| `UNKNOWN25` | 33554432 (0x2000000) | vmangos: exists, but unknown what it does | -| `UNKNOWN26` | 67108864 (0x4000000) | | -| `UNKNOWN27` | 134217728 (0x8000000) | | -| `UNKNOWN28` | 268435456 (0x10000000) | | -| `UNKNOWN29` | 536870912 (0x20000000) | | -| `UNKNOWN30` | 1073741824 (0x40000000) | | -| `UNKNOWN31` | 2147483648 (0x80000000) | | +| `TRANSPORT_ENTER` | 8388608 (0x800000) | | +| `TRANSPORT_EXIT` | 16777216 (0x1000000) | | +| `UNKNOWN7` | 33554432 (0x2000000) | vmangos: exists, but unknown what it does | +| `UNKNOWN8` | 67108864 (0x4000000) | | +| `ORIENTATION_INVERSED` | 134217728 (0x8000000) | | +| `UNKNOWN10` | 268435456 (0x10000000) | | +| `UNKNOWN11` | 536870912 (0x20000000) | | +| `UNKNOWN12` | 1073741824 (0x40000000) | | +| `UNKNOWN13` | 2147483648 (0x80000000) | | Used in: * [MovementBlock](movementblock.md)