Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: e2c7ef4285
Fetching contributors…

Cannot retrieve contributors at this time

file 65 lines (56 sloc) 2.221 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
/**
* @file tilesetFromList.hpp
* @brief Tiles stored as a grid in an image file.
*
* Copyright (C) 2010-2011 Adam Nielsen <malvineous@shikadi.net>
*
* This program 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 3 of the License, or
* (at your option) any later version.
*
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef _CAMOTO_TLS_IMG_LIST_HPP_
#define _CAMOTO_TLS_IMG_LIST_HPP_

#include <camoto/gamegraphics/tileset.hpp>
#include "basetileset.hpp"
#include "subimage.hpp"

namespace camoto {
namespace gamegraphics {

class TilesetFromList: virtual public BaseTileset
{
public:
TilesetFromList(const TileList& tileList, ImagePtr img,
unsigned int layoutWidth);
virtual ~TilesetFromList();

virtual int getCaps();
virtual const VC_ENTRYPTR& getItems() const;
virtual ImagePtr openImage(const EntryPtr& id);
virtual EntryPtr insert(const EntryPtr& idBeforeThis, int attr);
virtual void remove(EntryPtr& id);
virtual void resize(EntryPtr& id, stream::len newSize);
virtual void flush();
virtual unsigned int getLayoutWidth();
virtual PaletteTablePtr getPalette();
virtual void setPalette(PaletteTablePtr newPalette);

protected:
TileList tileList; ///< List of underlying images
ImagePtr img; ///< Original image data
StdImageDataPtr stdImg; ///< Raw image data
StdImageDataPtr stdMask; ///< Raw image mask
VC_ENTRYPTR items; ///< List of tiles
bool hasImageChanged; ///< Do we need to call fromStandard() on flush?
fn_image_changed fnImageChanged; ///< Callback function
unsigned int layoutWidth; ///< Return value for getLayoutWidth()

void imageChanged();
};

} // namespace gamegraphics
} // namespace camoto

#endif // _CAMOTO_TLS_IMG_LIST_HPP_
Something went wrong with that request. Please try again.