/* * Copyright 2022 Frederico de Oliveira Linhares * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "sprite_implementation.hpp" #include #include #include bool cg_SpriteArray_constructor( struct cg_SpriteArray_s *self, const char *file_path) { YAML::Node root = YAML::LoadFile(file_path); self->len = root.size(); self->sprites = new cg_Sprite_s[self->len]; int index = 0; for(YAML::const_iterator sprite_node = root.begin(); sprite_node != root.end(); sprite_node++) { cg_Sprite_s *sprite = &self->sprites[index]; auto node_name = sprite_node->first.as(); sprite->name = new char[node_name.size() + 1]; strcpy(sprite->name, node_name.c_str()); sprite->x = sprite_node->second["x"].as(); sprite->y = sprite_node->second["y"].as(); sprite->width = sprite_node->second["width"].as(); sprite->height = sprite_node->second["height"].as(); index++; } return true; } void cg_SpriteArray_destructor(struct cg_SpriteArray_s *self) { for(auto i = 0; i < self->len; i++) delete[] self->sprites[i].name; delete[] self->sprites; }