From 1a8ec165031af3b860028ef1b360acc8e7baf9e6 Mon Sep 17 00:00:00 2001 From: TravisBot <> Date: Thu, 21 Sep 2017 23:32:46 +0000 Subject: Rebuilding documentation --- yage/base/spritesheet.cpp | 122 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 yage/base/spritesheet.cpp (limited to 'yage/base/spritesheet.cpp') diff --git a/yage/base/spritesheet.cpp b/yage/base/spritesheet.cpp new file mode 100644 index 00000000..748cdb5c --- /dev/null +++ b/yage/base/spritesheet.cpp @@ -0,0 +1,122 @@ +/* ---------------------------------------------------------------------------- + * spritesheet.cpp + * + * Copyright (c) 2017 Yann Herklotz Grave + * MIT License, see LICENSE file for more details. + * ---------------------------------------------------------------------------- + */ + +#include "spritesheet.h" + +namespace yage +{ + +namespace details +{ + +bool SpriteSheetHandler::Null() +{ + return true; +} + +bool SpriteSheetHandler::Bool(bool) +{ + return true; +} + +bool SpriteSheetHandler::Int(int i) +{ + return handleNumber(i); +} + +bool SpriteSheetHandler::Uint(unsigned u) +{ + return handleNumber(static_cast(u)); +} + +bool SpriteSheetHandler::Int64(int64_t i) +{ + return handleNumber(static_cast(i)); +} + +bool SpriteSheetHandler::Uint64(uint64_t u) +{ + return handleNumber(static_cast(u)); +} + +bool SpriteSheetHandler::Double(double d) +{ + return handleNumber(static_cast(d)); +} + +bool SpriteSheetHandler::String(const char *, rapidjson::SizeType, bool) +{ + return true; +} + +bool SpriteSheetHandler::Key(const char *str, rapidjson::SizeType length, bool) +{ + current_key_ = std::string(str, length); + return true; +} + +bool SpriteSheetHandler::StartObject() +{ + depth_++; + + if(depth_ == 3) { + current_image_ = current_key_; + } + + return true; +} + +bool SpriteSheetHandler::EndObject(rapidjson::SizeType) +{ + if(depth_ == 3) { + map_[current_image_] = coord_; + } + depth_--; + return true; +} + +bool SpriteSheetHandler::StartArray() +{ + return true; +} + +bool SpriteSheetHandler::EndArray(rapidjson::SizeType) +{ + return true; +} + +SpriteMap SpriteSheetHandler::spriteMap() const +{ + return map_; +} + +bool SpriteSheetHandler::handleNumber(int i) +{ + if(current_key_ == "width") { + if(depth_ == 1) { + image_width_ = i; + } else { + coord_.width = i; + } + } else if(current_key_ == "height") { + if(depth_ == 1) { + image_height_ = i; + } else { + coord_.height = i; + } + } else if(current_key_ == "x") { + coord_.x = i; + } else if(current_key_ == "y") { + coord_.y = i; + } + return true; +} + +} // namespace details + +} // namespace yage -- cgit