/* ** table.h ** ** This file is part of mkxp. ** ** Copyright (C) 2013 Jonas Kulla ** ** mkxp is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 2 of the License, or ** (at your option) any later version. ** ** mkxp is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with mkxp. If not, see . */ #ifndef TABLE_H #define TABLE_H #include "serializable.h" #include #include #include class Table : public Serializable { public: Table(int x, int y = 1, int z = 1); /* Clone constructor */ Table(const Table &other); virtual ~Table() {} int xSize() const { return xs; } int ySize() const { return ys; } int zSize() const { return zs; } int16_t get(int x, int y = 0, int z = 0) const; void set(int16_t value, int x, int y = 0, int z = 0); void resize(int x, int y, int z); void resize(int x, int y); void resize(int x); int serialSize() const; void serialize(char *buffer) const; static Table *deserialize(const char *data, int len); /* modified; private: int xs, ys, zs; std::vector data; }; #endif // TABLE_H