the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#pragma once
2
3#include "Tag.h"
4#include "System.h"
5
6class IntArrayTag : public Tag
7{
8public:
9 intArray data;
10
11 IntArrayTag(const wstring &name) : Tag(name)
12 {
13 data = intArray();
14 }
15
16 IntArrayTag(const wstring &name, intArray data) : Tag(name)
17 {
18 this->data = data;
19 }
20
21 ~IntArrayTag()
22 {
23 delete [] data.data;
24 }
25
26 void write(DataOutput *dos)
27 {
28 dos->writeInt(data.length);
29 for (unsigned int i = 0; i < data.length; i++)
30 {
31 dos->writeInt(data[i]);
32 }
33 }
34
35 void load(DataInput *dis, int tagDepth)
36 {
37 int length = dis->readInt();
38
39 if ( data.data ) delete[] data.data;
40 data = intArray(length);
41 for (int i = 0; i < length; i++)
42 {
43 data[i] = dis->readInt();
44 }
45 }
46
47 byte getId() { return TAG_Int_Array; }
48
49 wstring toString()
50 {
51 static wchar_t buf[32];
52 swprintf(buf, 32, L"[%d bytes]",data.length);
53 return wstring( buf );
54 }
55
56 bool equals(Tag *obj)
57 {
58 if (Tag::equals(obj))
59 {
60 IntArrayTag *o = (IntArrayTag *) obj;
61 return ((data.data == NULL && o->data.data == NULL) || (data.data != NULL && data.length == o->data.length && memcmp(data.data, o->data.data, data.length * sizeof(int)) == 0) );
62 }
63 return false;
64 }
65
66 Tag *copy()
67 {
68 intArray cp = intArray(data.length);
69 System::arraycopy(data, 0, &cp, 0, data.length);
70 return new IntArrayTag(getName(), cp);
71 }
72};