summaryrefslogtreecommitdiffstats
path: root/src/NBT/IntArrayTag.hpp
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2015-02-01 04:14:42 +0100
committerMatthias Schiffer <mschiffer@universe-factory.net>2015-02-01 04:14:42 +0100
commit8a8a41a800dfe9bdcab934d6b53d9c6defd4a457 (patch)
treef9d40b96ee3413cbe7a402a4b4abad607b2a1c7c /src/NBT/IntArrayTag.hpp
parentfc1fc8fbbc9dd9534f40de348210ea66b6defe42 (diff)
downloadMinedMap-8a8a41a800dfe9bdcab934d6b53d9c6defd4a457.tar
MinedMap-8a8a41a800dfe9bdcab934d6b53d9c6defd4a457.zip
Parse chunk data on demand
Diffstat (limited to 'src/NBT/IntArrayTag.hpp')
-rw-r--r--src/NBT/IntArrayTag.hpp20
1 files changed, 4 insertions, 16 deletions
diff --git a/src/NBT/IntArrayTag.hpp b/src/NBT/IntArrayTag.hpp
index e9b0d3d..22f84b2 100644
--- a/src/NBT/IntArrayTag.hpp
+++ b/src/NBT/IntArrayTag.hpp
@@ -38,24 +38,12 @@ class IntArrayTag : public Tag {
private:
friend class Tag;
- std::vector<uint32_t> value;
+ uint32_t len;
+ const uint8_t *ptr;
IntArrayTag(Buffer *buffer) {
- uint32_t len = uint32_t(buffer->get()) << 24;
- len |= uint32_t(buffer->get()) << 16;
- len |= uint32_t(buffer->get()) << 8;
- len |= uint32_t(buffer->get());
-
- value.resize(len);
-
- for (uint32_t i = 0; i < len; i++) {
- uint32_t v = uint32_t(buffer->get()) << 24;
- v |= uint32_t(buffer->get()) << 16;
- v |= uint32_t(buffer->get()) << 8;
- v |= uint32_t(buffer->get());
-
- value[i] = v;
- }
+ len = buffer->get32();
+ ptr = buffer->get(4*len);
}
public: