Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorvald Natvig <slicer@users.sourceforge.net>2007-07-19 21:35:34 +0400
committerThorvald Natvig <slicer@users.sourceforge.net>2007-07-19 21:35:34 +0400
commit62dbc00a2139e142c1030d7a51d4dfaaf78637c5 (patch)
treebe6ffe31288f38b03181602ccc4524a3e0884ea4 /src/PacketDataStream.h
parent3621a6dda98f9ad29335e558b326c688381b1d47 (diff)
sPlayerId => uiSession
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@637 05730e5d-ab1b-0410-a4ac-84af385074fa
Diffstat (limited to 'src/PacketDataStream.h')
-rw-r--r--src/PacketDataStream.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/PacketDataStream.h b/src/PacketDataStream.h
index 3e801dbba..8084392f9 100644
--- a/src/PacketDataStream.h
+++ b/src/PacketDataStream.h
@@ -138,9 +138,15 @@ class PacketDataStream {
quint64 i = value;
if ((i & 0x8000000000000000LL) && (~i < 0x100000000LL)) {
- // Sign shortcut
- append(0xF8);
+ // Signed number.
i = ~i;
+ if (i <= 0x3) {
+ // Shortcase for -1 to -4
+ append(0xFC | i);
+ return *this;
+ } else {
+ append(0xF8);
+ }
}
if (i < 0x80) {
// Need top bit clear
@@ -186,7 +192,7 @@ class PacketDataStream {
quint32 v = next();
bool invert = false;
if ((v & 0xF0) == 0xF0) {
- switch (v) {
+ switch (v & 0xFC) {
case 0xF0:
i=next() << 24 | next() << 16 | next() << 8 | next();
return *this;
@@ -197,6 +203,10 @@ class PacketDataStream {
invert = true;
v = next();
break;
+ case 0xFC:
+ i=v & 0x03;
+ i = ~i;
+ return *this;
default:
ok = false;
i = 0;