From daa04a789a22ed5cd79d6e6c71e5758392c699d3 Mon Sep 17 00:00:00 2001 From: Leah Anderson Date: Mon, 2 Mar 2026 10:40:53 -0700 Subject: [PATCH] to whoever at 4j made this code not adhere to any C standard: why --- Minecraft.World/ChunkTilesUpdatePacket.cpp | 54 +++++++++---------- Minecraft.World/ClientCommandPacket.cpp | 6 +-- Minecraft.World/ContainerAckPacket.cpp | 8 +-- .../ContainerButtonClickPacket.cpp | 10 ++-- Minecraft.World/ContainerClickPacket.cpp | 8 +-- Minecraft.World/ContainerClosePacket.cpp | 4 +- Minecraft.World/ContainerOpenPacket.cpp | 12 ++--- Minecraft.World/ContainerSetContentPacket.cpp | 4 +- Minecraft.World/ContainerSetDataPacket.cpp | 4 +- Minecraft.World/ContainerSetSlotPacket.cpp | 4 +- Minecraft.World/CustomPayloadPacket.cpp | 4 +- 11 files changed, 59 insertions(+), 59 deletions(-) diff --git a/Minecraft.World/ChunkTilesUpdatePacket.cpp b/Minecraft.World/ChunkTilesUpdatePacket.cpp index d90e6b2f0..08d78146b 100644 --- a/Minecraft.World/ChunkTilesUpdatePacket.cpp +++ b/Minecraft.World/ChunkTilesUpdatePacket.cpp @@ -21,7 +21,7 @@ ChunkTilesUpdatePacket::ChunkTilesUpdatePacket() shouldDelay = true; xc = 0; zc = 0; - count = 0; + count = (std::byte)0; } ChunkTilesUpdatePacket::ChunkTilesUpdatePacket(int xc, int zc, shortArray positions, byte count, Level *level) @@ -30,12 +30,12 @@ ChunkTilesUpdatePacket::ChunkTilesUpdatePacket(int xc, int zc, shortArray positi this->xc = xc; this->zc = zc; this->count = count; - this->positions = shortArray(count); + this->positions = shortArray((short int)count); - this->blocks = byteArray(count); - this->data = byteArray(count); + this->blocks = byteArray((unsigned int)count); + this->data = byteArray((unsigned int)count); LevelChunk *levelChunk = level->getChunk(xc, zc); - for (int i = 0; i < count; i++) + for (int i = 0; (std::byte)i < count; i++) { int x = (positions[i] >> 12) & 15; int z = (positions[i] >> 8) & 15; @@ -63,33 +63,33 @@ void ChunkTilesUpdatePacket::read(DataInputStream *dis) //throws IOException zc = ( zc << 24 ) >> 24; #endif - int countAndFlags = dis->readByte(); + int countAndFlags = (int)dis->readByte(); bool dataAllZero = (( countAndFlags & 0x80 ) == 0x80 ); levelIdx = ( countAndFlags >> 5 ) & 3; - count = countAndFlags & 0x1f; + count = (std::byte)countAndFlags & (std::byte)0x1f; - positions = shortArray(count); - blocks = byteArray(count); - data = byteArray(count); + positions = shortArray((short int)count); + blocks = byteArray((unsigned int)count); + data = byteArray((unsigned int)count); int currentBlockType = -1; - for( int i = 0; i < count; i++ ) + for( int i = 0; (std::byte)i < count; i++ ) { int xzAndFlag = dis->readShort(); - int y = dis->readByte(); + int y = (int)dis->readByte(); positions[i] = (xzAndFlag & 0xff00) | (y & 0xff); if( ( xzAndFlag & 0x0080 ) == 0x0080 ) { currentBlockType = dis->read(); } - blocks[i] = currentBlockType; + blocks[i] = (std::byte)currentBlockType; if( !dataAllZero) { - data[i] = dis->read(); + data[i] = (std::byte)dis->read(); } else { - data[i] = 0; + data[i] = (std::byte)0; } } } @@ -107,22 +107,22 @@ void ChunkTilesUpdatePacket::write(DataOutputStream *dos) //throws IOException // Determine if we've got any data elements that are non-zero - a large % of these packets set all data to zero, so we don't // bother sending all those zeros in that case. bool dataAllZero = true; - for( int i = 0; i < count; i++ ) + for( int i = 0; i < (int)count; i++ ) { - if( data[i] ) dataAllZero = false; + if( (bool)data[i] ) dataAllZero = false; } - int countAndFlags = count; - if( dataAllZero ) countAndFlags |= 0x80; + int countAndFlags = (int)count; + if( (bool)dataAllZero ) countAndFlags |= 0x80; countAndFlags |= ( levelIdx << 5 ); dos->write(countAndFlags); int lastBlockType = -1; // Each block is represented by 15 bits of position, a flag to say whether the current block type is to change, and a possible data value. // A large % of these packets set the same block type to a several positions, so no point resending the block type when not necessary. - for( int i = 0; i < count; i++ ) + for( int i = 0; i < (int)count; i++ ) { int xzAndFlag = positions[i] &0xff00; int y = positions[i] & 0xff; - int thisBlockType = blocks[i]; + int thisBlockType = (int)blocks[i]; if( thisBlockType != lastBlockType ) { xzAndFlag |= 0x0080; // Use top bit of y as a flag, we only need 7 bits for that @@ -138,7 +138,7 @@ void ChunkTilesUpdatePacket::write(DataOutputStream *dos) //throws IOException } if( !dataAllZero ) { - dos->write(data[i]); + dos->write((unsigned int)data[i]); } } } @@ -153,20 +153,20 @@ int ChunkTilesUpdatePacket::getEstimatedSize() bool dataAllZero = true; int lastBlockType = -1; int blockTypeChanges = 0; - for( int i = 0; i < count; i++ ) + for( int i = 0; i < (int)count; i++ ) { - if( data[i] ) dataAllZero = false; - int thisBlockType = blocks[i]; + if( (bool)data[i] ) dataAllZero = false; + int thisBlockType = (int)blocks[i]; if( thisBlockType != lastBlockType ) { blockTypeChanges++; lastBlockType = thisBlockType; } } - int byteCount = 3 + 2 * count + blockTypeChanges; + int byteCount = 3 + 2 * (int)count + blockTypeChanges; if( !dataAllZero ) { - byteCount += count; + byteCount += (unsigned char) count; } return byteCount; diff --git a/Minecraft.World/ClientCommandPacket.cpp b/Minecraft.World/ClientCommandPacket.cpp index 4245fc3fa..d0443b669 100644 --- a/Minecraft.World/ClientCommandPacket.cpp +++ b/Minecraft.World/ClientCommandPacket.cpp @@ -14,12 +14,12 @@ ClientCommandPacket::ClientCommandPacket(int action) void ClientCommandPacket::read(DataInputStream *dis) { - action = dis->readByte(); + action = (int)dis->readByte(); } void ClientCommandPacket::write(DataOutputStream *dos) { - dos->writeByte(action & 0xff); + dos->writeByte((std::byte)action & (std::byte)0xff); } void ClientCommandPacket::handle(PacketListener *listener) @@ -30,4 +30,4 @@ void ClientCommandPacket::handle(PacketListener *listener) int ClientCommandPacket::getEstimatedSize() { return 1; -} \ No newline at end of file +} diff --git a/Minecraft.World/ContainerAckPacket.cpp b/Minecraft.World/ContainerAckPacket.cpp index b416bfa69..de7b7324a 100644 --- a/Minecraft.World/ContainerAckPacket.cpp +++ b/Minecraft.World/ContainerAckPacket.cpp @@ -27,16 +27,16 @@ void ContainerAckPacket::handle(PacketListener *listener) void ContainerAckPacket::read(DataInputStream *dis) //throws IOException { - containerId = dis->readByte(); + containerId = (int)dis->readByte(); uid = dis->readShort(); - accepted = dis->readByte() != 0; + accepted = (int)dis->readByte() != 0; } void ContainerAckPacket::write(DataOutputStream *dos) //throws IOException { - dos->writeByte(containerId); + dos->writeByte((std::byte)containerId); dos->writeShort(uid); - dos->writeByte(accepted ? 1 : 0); + dos->writeByte((std::byte)(accepted ? 1 : 0)); } int ContainerAckPacket::getEstimatedSize() diff --git a/Minecraft.World/ContainerButtonClickPacket.cpp b/Minecraft.World/ContainerButtonClickPacket.cpp index 7aa1aec19..b1490cdd5 100644 --- a/Minecraft.World/ContainerButtonClickPacket.cpp +++ b/Minecraft.World/ContainerButtonClickPacket.cpp @@ -24,17 +24,17 @@ void ContainerButtonClickPacket::handle(PacketListener *listener) void ContainerButtonClickPacket::read(DataInputStream *dis) { - containerId = dis->readByte(); - buttonId = dis->readByte(); + containerId = (int)dis->readByte(); + buttonId = (int)dis->readByte(); } void ContainerButtonClickPacket::write(DataOutputStream *dos) { - dos->writeByte(containerId); - dos->writeByte(buttonId); + dos->writeByte((std::byte)containerId); + dos->writeByte((std::byte)buttonId); } int ContainerButtonClickPacket::getEstimatedSize() { return 2; -} \ No newline at end of file +} diff --git a/Minecraft.World/ContainerClickPacket.cpp b/Minecraft.World/ContainerClickPacket.cpp index 5b3ca24fd..228907809 100644 --- a/Minecraft.World/ContainerClickPacket.cpp +++ b/Minecraft.World/ContainerClickPacket.cpp @@ -39,9 +39,9 @@ void ContainerClickPacket::handle(PacketListener *listener) void ContainerClickPacket::read(DataInputStream *dis) //throws IOException { - containerId = dis->readByte(); + containerId = (int)dis->readByte(); slotNum = dis->readShort(); - buttonNum = dis->readByte(); + buttonNum = (int)dis->readByte(); uid = dis->readShort(); quickKey = dis->readBoolean(); @@ -50,9 +50,9 @@ void ContainerClickPacket::read(DataInputStream *dis) //throws IOException void ContainerClickPacket::write(DataOutputStream *dos) // throws IOException { - dos->writeByte(containerId); + dos->writeByte((std::byte)containerId); dos->writeShort(slotNum); - dos->writeByte(buttonNum); + dos->writeByte((std::byte)buttonNum); dos->writeShort(uid); dos->writeBoolean(quickKey); diff --git a/Minecraft.World/ContainerClosePacket.cpp b/Minecraft.World/ContainerClosePacket.cpp index 964359f98..45c09e31f 100644 --- a/Minecraft.World/ContainerClosePacket.cpp +++ b/Minecraft.World/ContainerClosePacket.cpp @@ -23,12 +23,12 @@ void ContainerClosePacket::handle(PacketListener *listener) void ContainerClosePacket::read(DataInputStream *dis) //throws IOException { - containerId = dis->readByte(); + containerId = (int)dis->readByte(); } void ContainerClosePacket::write(DataOutputStream *dos) //throws IOException { - dos->writeByte(containerId); + dos->writeByte((std::byte)containerId); } int ContainerClosePacket::getEstimatedSize() diff --git a/Minecraft.World/ContainerOpenPacket.cpp b/Minecraft.World/ContainerOpenPacket.cpp index 7cb530cfc..e4a331367 100644 --- a/Minecraft.World/ContainerOpenPacket.cpp +++ b/Minecraft.World/ContainerOpenPacket.cpp @@ -28,18 +28,18 @@ void ContainerOpenPacket::handle(PacketListener *listener) void ContainerOpenPacket::read(DataInputStream *dis) //throws IOException { - containerId = dis->readByte() & 0xff; - type = dis->readByte() & 0xff; + containerId = (int)(dis->readByte() & (std::byte)0xff); + type = (int)(dis->readByte() & (std::byte)0xff); title = dis->readShort(); - size = dis->readByte() & 0xff; + size = (int)(dis->readByte() & (std::byte)0xff); } void ContainerOpenPacket::write(DataOutputStream *dos) //throws IOException { - dos->writeByte(containerId & 0xff); - dos->writeByte(type & 0xff); + dos->writeByte((std::byte)containerId & (std::byte)0xff); + dos->writeByte((std::byte)type & (std::byte)0xff); dos->writeShort(title & 0xffff); - dos->writeByte(size & 0xff); + dos->writeByte((std::byte)size & (std::byte)0xff); } int ContainerOpenPacket::getEstimatedSize() diff --git a/Minecraft.World/ContainerSetContentPacket.cpp b/Minecraft.World/ContainerSetContentPacket.cpp index 13cfebd7c..bc05aa6c3 100644 --- a/Minecraft.World/ContainerSetContentPacket.cpp +++ b/Minecraft.World/ContainerSetContentPacket.cpp @@ -30,7 +30,7 @@ ContainerSetContentPacket::ContainerSetContentPacket(int containerId, vectorreadByte(); + containerId = (int)dis->readByte(); int count = dis->readShort(); items = ItemInstanceArray(count); for (int i = 0; i < count; i++) @@ -41,7 +41,7 @@ void ContainerSetContentPacket::read(DataInputStream *dis) //throws IOException void ContainerSetContentPacket::write(DataOutputStream *dos) //throws IOException { - dos->writeByte(containerId); + dos->writeByte((std::byte)containerId); dos->writeShort(items.length); for (unsigned int i = 0; i < items.length; i++) { diff --git a/Minecraft.World/ContainerSetDataPacket.cpp b/Minecraft.World/ContainerSetDataPacket.cpp index 756d8f580..f7ab48572 100644 --- a/Minecraft.World/ContainerSetDataPacket.cpp +++ b/Minecraft.World/ContainerSetDataPacket.cpp @@ -27,14 +27,14 @@ void ContainerSetDataPacket::handle(PacketListener *listener) void ContainerSetDataPacket::read(DataInputStream *dis) //throws IOException { - containerId = dis->readByte(); + containerId = (int)dis->readByte(); id = dis->readShort(); value = dis->readShort(); } void ContainerSetDataPacket::write(DataOutputStream *dos) // throws IOException { - dos->writeByte(containerId); + dos->writeByte((std::byte)containerId); dos->writeShort(id); dos->writeShort(value); } diff --git a/Minecraft.World/ContainerSetSlotPacket.cpp b/Minecraft.World/ContainerSetSlotPacket.cpp index 42892f3cc..2d44e551d 100644 --- a/Minecraft.World/ContainerSetSlotPacket.cpp +++ b/Minecraft.World/ContainerSetSlotPacket.cpp @@ -34,7 +34,7 @@ void ContainerSetSlotPacket::read(DataInputStream *dis) //throws IOException { // 4J Stu - TU-1 hotfix // Fix for #13142 - Holding down the A button on the furnace ingredient slot causes the UI to display incorrect item counts - BYTE byteId = dis->readByte(); + std::byte byteId = dis->readByte(); containerId = *(char *)&byteId; slot = dis->readShort(); item = readItem(dis); @@ -42,7 +42,7 @@ void ContainerSetSlotPacket::read(DataInputStream *dis) //throws IOException void ContainerSetSlotPacket::write(DataOutputStream *dos) //throws IOException { - dos->writeByte(containerId); + dos->writeByte((std::byte)containerId); dos->writeShort(slot); writeItem(item, dos); } diff --git a/Minecraft.World/CustomPayloadPacket.cpp b/Minecraft.World/CustomPayloadPacket.cpp index 29e2828ee..eadc01fe9 100644 --- a/Minecraft.World/CustomPayloadPacket.cpp +++ b/Minecraft.World/CustomPayloadPacket.cpp @@ -3,7 +3,7 @@ #include "PacketListener.h" #include "BasicTypeContainers.h" #include "CustomPayloadPacket.h" - +#include "../Minecraft.Client/Windows64/Windows64_App.h" // Mojang-defined custom packets const wstring CustomPayloadPacket::CUSTOM_BOOK_PACKET = L"MC|BEdit"; const wstring CustomPayloadPacket::CUSTOM_BOOK_SIGN_PACKET = L"MC|BSign"; @@ -72,4 +72,4 @@ void CustomPayloadPacket::handle(PacketListener *listener) int CustomPayloadPacket::getEstimatedSize() { return 2 + identifier.length() * 2 + 2 + length; -} \ No newline at end of file +}