diff options
Diffstat (limited to 'yage/base/spritesheet.h')
-rw-r--r-- | yage/base/spritesheet.h | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/yage/base/spritesheet.h b/yage/base/spritesheet.h deleted file mode 100644 index bc60f8b9..00000000 --- a/yage/base/spritesheet.h +++ /dev/null @@ -1,90 +0,0 @@ -/* ---------------------------------------------------------------------------- - * spritesheet.h - * - * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> - * MIT License, see LICENSE file for more details. - * ---------------------------------------------------------------------------- - */ - -#ifndef YAGE_SPRITESHEET_H -#define YAGE_SPRITESHEET_H - -#include "texture.h" - -#include <rapidjson/reader.h> - -#include <map> -#include <string> - -namespace yage -{ - -namespace details -{ - -struct Coordinate { - int x; - int y; - int width; - int height; - - Coordinate() = default; - - Coordinate(int x_i, int y_i, int width_i, int height_i) - : x(x_i), y(y_i), width(width_i), height(height_i) - { - } -}; - -typedef std::map<std::string, details::Coordinate> SpriteMap; - -class SpriteSheetHandler - : public rapidjson::BaseReaderHandler<rapidjson::UTF8<>, SpriteSheetHandler> -{ -public: - bool Null(); - bool Bool(bool b); - bool Int(int i); - bool Uint(unsigned u); - bool Int64(int64_t i); - bool Uint64(uint64_t u); - bool Double(double d); - bool String(const char *str, rapidjson::SizeType length, bool copy); - - bool Key(const char *str, rapidjson::SizeType length, bool copy); - bool StartObject(); - bool EndObject(rapidjson::SizeType memberCount); - bool StartArray(); - bool EndArray(rapidjson::SizeType memberCount); - - SpriteMap spriteMap() const; - -private: - std::string current_key_; - std::string current_image_; - Coordinate coord_; - int depth_; - int image_width_; - int image_height_; - SpriteMap map_; - - bool handleNumber(int i); -}; - -} // namespace details - -class SpriteSheet -{ -public: - SpriteSheet(std::string pngFileName, std::string jsonFileName); - - void sprite(std::string spriteName) const; - -private: - Texture texture_; - details::SpriteMap fileLocations_; -}; - -} // namespace yage - -#endif |