summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ClientHandle.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp
index 9565fc41f..de0a57a0a 100644
--- a/src/ClientHandle.cpp
+++ b/src/ClientHandle.cpp
@@ -1065,7 +1065,29 @@ void cClientHandle::HandleAnimation(char a_Animation)
// Plugin disagrees, bail out
return;
}
-
+
+ // Because the animation ID sent to servers by clients are different to those sent back, we need this
+ switch (a_Animation)
+ {
+ case 0: // No animation - wiki.vg doesn't say that client has something specific for it, so I suppose it will just become -1
+ case 1:
+ case 2:
+ case 3:
+ {
+ a_Animation--; // Offset by -1
+ break;
+ }
+ case 5:
+ case 6:
+ case 7:
+ {
+ a_Animation -= 2; // Offset by -2
+ break;
+ }
+ default: // Anything else is the same
+ break;
+ }
+
m_Player->GetWorld()->BroadcastEntityAnimation(*m_Player, a_Animation, this);
}