aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-woww.c
diff options
context:
space:
mode:
authorGtker <git@gtker.com>2022-11-27 10:50:53 +0100
committerAlexis La Goutte <alexis.lagoutte@gmail.com>2023-02-10 19:45:14 +0000
commita9cef8a1879ac5bbbbec2984c4878d4da7021ad3 (patch)
treec409f5ea03ed78757642d2e14aaa78054fae9284 /epan/dissectors/packet-woww.c
parent65dc7dff9f5c9576e1b70f5c32339fcd5a4c1e44 (diff)
woww: Add previously missing movement messages
Diffstat (limited to 'epan/dissectors/packet-woww.c')
-rw-r--r--epan/dissectors/packet-woww.c96
1 files changed, 96 insertions, 0 deletions
diff --git a/epan/dissectors/packet-woww.c b/epan/dissectors/packet-woww.c
index 24cb21852d..510525a7ec 100644
--- a/epan/dissectors/packet-woww.c
+++ b/epan/dissectors/packet-woww.c
@@ -795,6 +795,7 @@ static int hf_woww_time_left_in_msecs = -1;
static int hf_woww_time_offline = -1;
static int hf_woww_time_passed = -1;
static int hf_woww_time_remaining = -1;
+static int hf_woww_time_skipped = -1;
static int hf_woww_time_to_bg_autoleave_in_ms = -1;
static int hf_woww_time_to_bg_start_in_ms = -1;
static int hf_woww_time_to_remove_in_queue_in_ms = -1;
@@ -11188,6 +11189,11 @@ add_body_fields(guint32 opcode,
ptvcursor_add(ptv, hf_woww_duration, 4, ENC_LITTLE_ENDIAN);
}
break;
+ case MSG_CHANNEL_UPDATE:
+ if (WOWW_SERVER_TO_CLIENT) {
+ ptvcursor_add(ptv, hf_woww_time, 4, ENC_LITTLE_ENDIAN);
+ }
+ break;
case MSG_CORPSE_QUERY:
if (WOWW_SERVER_TO_CLIENT) {
ptvcursor_add_ret_uint(ptv, hf_woww_corpse_query_result, 1, ENC_LITTLE_ENDIAN, &result);
@@ -11342,6 +11348,46 @@ add_body_fields(guint32 opcode,
ptvcursor_pop_subtree(ptv);
}
break;
+ case MSG_MOVE_FEATHER_FALL:
+ if (WOWW_SERVER_TO_CLIENT) {
+ add_packed_guid(ptv, pinfo);
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
+ ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
+ ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
+ ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
+ if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
+ add_packed_guid(ptv, pinfo);
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
+ ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ }
+ if (flags & MOVEMENT_FLAGS_SWIMMING) {
+ ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
+ }
+ ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
+ if (flags & MOVEMENT_FLAGS_JUMPING) {
+ ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
+ }
+ if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
+ ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
+ }
+ ptvcursor_pop_subtree(ptv);
+ }
+ break;
case MSG_MOVE_HEARTBEAT:
if (WOWW_SERVER_TO_CLIENT) {
add_packed_guid(ptv, pinfo);
@@ -12928,6 +12974,50 @@ add_body_fields(guint32 opcode,
ptvcursor_add(ptv, hf_woww_time_in_msecs, 4, ENC_LITTLE_ENDIAN);
}
break;
+ case MSG_MOVE_TIME_SKIPPED:
+ if (WOWW_SERVER_TO_CLIENT) {
+ add_packed_guid(ptv, pinfo);
+ ptvcursor_add(ptv, hf_woww_time_skipped, 4, ENC_LITTLE_ENDIAN);
+ }
+ break;
+ case MSG_MOVE_WATER_WALK:
+ add_packed_guid(ptv, pinfo);
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
+ ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
+ ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
+ ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
+ if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
+ add_packed_guid(ptv, pinfo);
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
+ ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ }
+ if (flags & MOVEMENT_FLAGS_SWIMMING) {
+ ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
+ }
+ ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
+ if (flags & MOVEMENT_FLAGS_JUMPING) {
+ ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
+ }
+ if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
+ ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
+ }
+ ptvcursor_pop_subtree(ptv);
+ break;
case MSG_PETITION_DECLINE:
ptvcursor_add(ptv, hf_woww_petition, 8, ENC_LITTLE_ENDIAN);
break;
@@ -20061,6 +20151,12 @@ proto_register_woww(void)
NULL, HFILL
}
},
+ { &hf_woww_time_skipped,
+ { "Time Skipped", "woww.time.skipped",
+ FT_UINT32, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
{ &hf_woww_time_to_bg_autoleave_in_ms,
{ "Time To Bg Autoleave In Ms", "woww.time.to.bg.autoleave.in.ms",
FT_UINT32, BASE_HEX_DEC, NULL, 0,