summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMat <mail@mathias.is>2020-03-28 14:52:40 +0100
committerGitHub <noreply@github.com>2020-03-28 14:52:40 +0100
commitfce548139b8c4643cd28f636d5c497d2ca8cd230 (patch)
tree76810a291e6cf8cf2c2a10d9fa2c4fd447725323
parentFix alpha-sorting (diff)
downloadcuberite-fce548139b8c4643cd28f636d5c497d2ca8cd230.tar
cuberite-fce548139b8c4643cd28f636d5c497d2ca8cd230.tar.gz
cuberite-fce548139b8c4643cd28f636d5c497d2ca8cd230.tar.bz2
cuberite-fce548139b8c4643cd28f636d5c497d2ca8cd230.tar.lz
cuberite-fce548139b8c4643cd28f636d5c497d2ca8cd230.tar.xz
cuberite-fce548139b8c4643cd28f636d5c497d2ca8cd230.tar.zst
cuberite-fce548139b8c4643cd28f636d5c497d2ca8cd230.zip
-rw-r--r--src/Protocol/Protocol_1_8.cpp12
-rw-r--r--src/Protocol/Protocol_1_9.cpp12
-rw-r--r--src/UI/Window.cpp7
3 files changed, 14 insertions, 17 deletions
diff --git a/src/Protocol/Protocol_1_8.cpp b/src/Protocol/Protocol_1_8.cpp
index 00eaf4284..023fd640d 100644
--- a/src/Protocol/Protocol_1_8.cpp
+++ b/src/Protocol/Protocol_1_8.cpp
@@ -1630,7 +1630,7 @@ void cProtocol_1_8_0::SendWholeInventory(const cWindow & a_Window)
ASSERT(m_State == 3); // In game mode?
cPacketizer Pkt(*this, pktWindowItems);
- Pkt.WriteBEInt8(a_Window.GetWindowID());
+ Pkt.WriteBEUInt8(a_Window.GetWindowID());
Pkt.WriteBEInt16(static_cast<Int16>(a_Window.GetNumSlots()));
cItems Slots;
a_Window.GetSlots(*(m_Client->GetPlayer()), Slots);
@@ -1649,7 +1649,7 @@ void cProtocol_1_8_0::SendWindowClose(const cWindow & a_Window)
ASSERT(m_State == 3); // In game mode?
cPacketizer Pkt(*this, pktWindowClose);
- Pkt.WriteBEInt8(a_Window.GetWindowID());
+ Pkt.WriteBEUInt8(a_Window.GetWindowID());
}
@@ -1667,7 +1667,7 @@ void cProtocol_1_8_0::SendWindowOpen(const cWindow & a_Window)
}
cPacketizer Pkt(*this, pktWindowOpen);
- Pkt.WriteBEInt8(a_Window.GetWindowID());
+ Pkt.WriteBEUInt8(a_Window.GetWindowID());
Pkt.WriteString(a_Window.GetWindowTypeName());
Pkt.WriteString(Printf("{\"text\":\"%s\"}", a_Window.GetWindowTitle().c_str()));
@@ -1677,12 +1677,12 @@ void cProtocol_1_8_0::SendWindowOpen(const cWindow & a_Window)
case cWindow::wtEnchantment:
case cWindow::wtAnvil:
{
- Pkt.WriteBEInt8(0);
+ Pkt.WriteBEUInt8(0);
break;
}
default:
{
- Pkt.WriteBEInt8(static_cast<Int8>(a_Window.GetNumNonInventorySlots()));
+ Pkt.WriteBEUInt8(static_cast<UInt8>(a_Window.GetNumNonInventorySlots()));
break;
}
}
@@ -1703,7 +1703,7 @@ void cProtocol_1_8_0::SendWindowProperty(const cWindow & a_Window, short a_Prope
ASSERT(m_State == 3); // In game mode?
cPacketizer Pkt(*this, pktWindowProperty);
- Pkt.WriteBEInt8(a_Window.GetWindowID());
+ Pkt.WriteBEUInt8(a_Window.GetWindowID());
Pkt.WriteBEInt16(a_Property);
Pkt.WriteBEInt16(a_Value);
}
diff --git a/src/Protocol/Protocol_1_9.cpp b/src/Protocol/Protocol_1_9.cpp
index fa5215102..c9d460c9e 100644
--- a/src/Protocol/Protocol_1_9.cpp
+++ b/src/Protocol/Protocol_1_9.cpp
@@ -1686,7 +1686,7 @@ void cProtocol_1_9_0::SendWholeInventory(const cWindow & a_Window)
ASSERT(m_State == 3); // In game mode?
cPacketizer Pkt(*this, pktWindowItems);
- Pkt.WriteBEInt8(a_Window.GetWindowID());
+ Pkt.WriteBEUInt8(a_Window.GetWindowID());
Pkt.WriteBEInt16(static_cast<Int16>(a_Window.GetNumSlots()));
cItems Slots;
a_Window.GetSlots(*(m_Client->GetPlayer()), Slots);
@@ -1705,7 +1705,7 @@ void cProtocol_1_9_0::SendWindowClose(const cWindow & a_Window)
ASSERT(m_State == 3); // In game mode?
cPacketizer Pkt(*this, pktWindowClose);
- Pkt.WriteBEInt8(a_Window.GetWindowID());
+ Pkt.WriteBEUInt8(a_Window.GetWindowID());
}
@@ -1723,7 +1723,7 @@ void cProtocol_1_9_0::SendWindowOpen(const cWindow & a_Window)
}
cPacketizer Pkt(*this, pktWindowOpen);
- Pkt.WriteBEInt8(a_Window.GetWindowID());
+ Pkt.WriteBEUInt8(a_Window.GetWindowID());
Pkt.WriteString(a_Window.GetWindowTypeName());
Pkt.WriteString(Printf("{\"text\":\"%s\"}", a_Window.GetWindowTitle().c_str()));
@@ -1733,12 +1733,12 @@ void cProtocol_1_9_0::SendWindowOpen(const cWindow & a_Window)
case cWindow::wtEnchantment:
case cWindow::wtAnvil:
{
- Pkt.WriteBEInt8(0);
+ Pkt.WriteBEUInt8(0);
break;
}
default:
{
- Pkt.WriteBEInt8(static_cast<Int8>(a_Window.GetNumNonInventorySlots()));
+ Pkt.WriteBEUInt8(static_cast<UInt8>(a_Window.GetNumNonInventorySlots()));
break;
}
}
@@ -1759,7 +1759,7 @@ void cProtocol_1_9_0::SendWindowProperty(const cWindow & a_Window, short a_Prope
ASSERT(m_State == 3); // In game mode?
cPacketizer Pkt(*this, pktWindowProperty);
- Pkt.WriteBEInt8(a_Window.GetWindowID());
+ Pkt.WriteBEUInt8(a_Window.GetWindowID());
Pkt.WriteBEInt16(a_Property);
Pkt.WriteBEInt16(a_Value);
}
diff --git a/src/UI/Window.cpp b/src/UI/Window.cpp
index 92e69e8b7..b59268ac4 100644
--- a/src/UI/Window.cpp
+++ b/src/UI/Window.cpp
@@ -28,15 +28,13 @@ Byte cWindow::m_WindowIDCounter = 0;
cWindow::cWindow(WindowType a_WindowType, const AString & a_WindowTitle) :
- m_WindowID(static_cast<char>((++m_WindowIDCounter) % 127)),
+ m_WindowID(((++m_WindowIDCounter) % 127) + 1),
m_WindowType(a_WindowType),
m_WindowTitle(a_WindowTitle),
m_IsDestroyed(false),
m_Owner(nullptr)
{
- // The window ID is signed in protocol 1.7, unsigned in protocol 1.8. Keep out of trouble by using only 7 bits:
- // Ref.: https://forum.cuberite.org/thread-1876.html
- ASSERT((m_WindowID >= 0) && (m_WindowID < 127));
+ ASSERT((m_WindowID > 0) && (m_WindowID <= 127));
if (a_WindowType == wtInventory)
{
@@ -768,4 +766,3 @@ void cWindow::SetProperty(short a_Property, short a_Value, cPlayer & a_Player)
-