diff options
author | tycho <work.tycho@gmail.com> | 2015-12-26 15:09:12 +0100 |
---|---|---|
committer | tycho <work.tycho@gmail.com> | 2016-01-18 17:31:46 +0100 |
commit | 0185716a916522abe60d7433c285424354fbe72f (patch) | |
tree | 1dfcbd55a6d5762a5c948109f6845e62447f00ed /src/WorldStorage/FireworksSerializer.cpp | |
parent | More NBTTests (diff) | |
download | cuberite-0185716a916522abe60d7433c285424354fbe72f.tar cuberite-0185716a916522abe60d7433c285424354fbe72f.tar.gz cuberite-0185716a916522abe60d7433c285424354fbe72f.tar.bz2 cuberite-0185716a916522abe60d7433c285424354fbe72f.tar.lz cuberite-0185716a916522abe60d7433c285424354fbe72f.tar.xz cuberite-0185716a916522abe60d7433c285424354fbe72f.tar.zst cuberite-0185716a916522abe60d7433c285424354fbe72f.zip |
Diffstat (limited to 'src/WorldStorage/FireworksSerializer.cpp')
-rw-r--r-- | src/WorldStorage/FireworksSerializer.cpp | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/WorldStorage/FireworksSerializer.cpp b/src/WorldStorage/FireworksSerializer.cpp index 0398f4da8..4840bf05a 100644 --- a/src/WorldStorage/FireworksSerializer.cpp +++ b/src/WorldStorage/FireworksSerializer.cpp @@ -58,19 +58,15 @@ void cFireworkItem::WriteToNBTCompound(const cFireworkItem & a_FireworkItem, cFa -void cFireworkItem::ParseFromNBT(cFireworkItem & a_FireworkItem, const cParsedNBT & a_NBT, int a_TagIdx, const ENUM_ITEM_ID a_Type) +void cFireworkItem::ParseFromNBT(cFireworkItem & a_FireworkItem, const cParsedNBT & a_NBT, size_t a_TagIdx, const ENUM_ITEM_ID a_Type) { - if (a_TagIdx < 0) - { - return; - } - switch (a_Type) { case E_ITEM_FIREWORK_STAR: { - for (int explosiontag = a_NBT.GetFirstChild(a_TagIdx); explosiontag >= 0; explosiontag = a_NBT.GetNextSibling(explosiontag)) + for (auto maybeexplosiontag = a_NBT.GetFirstChild(a_TagIdx); maybeexplosiontag.HasValue(); maybeexplosiontag = a_NBT.GetNextSibling(maybeexplosiontag.GetValue())) { + auto explosiontag = maybeexplosiontag.GetValue(); eTagType TagType = a_NBT.GetType(explosiontag); if (TagType == TAG_Byte) // Custon name tag { @@ -104,7 +100,7 @@ void cFireworkItem::ParseFromNBT(cFireworkItem & a_FireworkItem, const cParsedNB continue; } - const char * ColourData = (a_NBT.GetData(explosiontag)); + const Byte * ColourData = (a_NBT.GetData(explosiontag)); for (size_t i = 0; i < DataLength; i += 4) { a_FireworkItem.m_Colours.push_back(GetBEInt(ColourData + i)); @@ -120,7 +116,7 @@ void cFireworkItem::ParseFromNBT(cFireworkItem & a_FireworkItem, const cParsedNB continue; } - const char * FadeColourData = (a_NBT.GetData(explosiontag)); + const Byte * FadeColourData = (a_NBT.GetData(explosiontag)); for (size_t i = 0; i < DataLength; i += 4) { a_FireworkItem.m_FadeColours.push_back(GetBEInt(FadeColourData + i)); @@ -132,8 +128,9 @@ void cFireworkItem::ParseFromNBT(cFireworkItem & a_FireworkItem, const cParsedNB } case E_ITEM_FIREWORK_ROCKET: { - for (int fireworkstag = a_NBT.GetFirstChild(a_TagIdx); fireworkstag >= 0; fireworkstag = a_NBT.GetNextSibling(fireworkstag)) + for (auto maybefireworkstag = a_NBT.GetFirstChild(a_TagIdx); maybefireworkstag.HasValue(); maybefireworkstag = a_NBT.GetNextSibling(maybefireworkstag.GetValue())) { + auto fireworkstag = maybefireworkstag.GetValue(); eTagType TagType = a_NBT.GetType(fireworkstag); if (TagType == TAG_Byte) // Custon name tag { @@ -144,10 +141,10 @@ void cFireworkItem::ParseFromNBT(cFireworkItem & a_FireworkItem, const cParsedNB } else if ((TagType == TAG_List) && (a_NBT.GetName(fireworkstag) == "Explosions")) { - int ExplosionsChild = a_NBT.GetFirstChild(fireworkstag); - if ((a_NBT.GetType(ExplosionsChild) == TAG_Compound) && (a_NBT.GetName(ExplosionsChild).empty())) + auto ExplosionsChild = a_NBT.GetFirstChild(fireworkstag); + if ((a_NBT.GetType(ExplosionsChild.GetValue()) == TAG_Compound) && (a_NBT.GetName(ExplosionsChild.GetValue()).empty())) { - ParseFromNBT(a_FireworkItem, a_NBT, ExplosionsChild, E_ITEM_FIREWORK_STAR); + ParseFromNBT(a_FireworkItem, a_NBT, ExplosionsChild.GetValue(), E_ITEM_FIREWORK_STAR); } } } |