view libmlk-rpg/mlk/rpg/loader-file_p.h @ 593:f9e85d0aca74

rpg: introduce private loader_file to help allocating map/tileset The structure is just an allocator and owner for various data shared among the map and the tileset such as sprites, textures, animations... While here, simplify use of mlk_(map|tileset)_loader_file so they don't have a public structure anymore but insert themselves into the loader->data.
author David Demelier <markand@malikania.fr>
date Tue, 21 Mar 2023 14:08:15 +0100
parents
children bb67f935a93f
line wrap: on
line source

/*
 * loader-file_p.h -- resource loader for map/tileset
 *
 * Copyright (c) 2020-2023 David Demelier <markand@malikania.fr>
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#ifndef MLK_RPG_LOADER_FILE_P_H
#define MLK_RPG_LOADER_FILE_P_H

struct mlk_animation;
struct mlk_sprite;
struct mlk_texture;

struct mlk__loader_file;

struct mlk__loader_file *
mlk__loader_file_new(const char *path);

const char *
mlk__loader_file_directory(const struct mlk__loader_file *loader);

struct mlk_texture *
mlk__loader_file_texture_open(struct mlk__loader_file *loader, const char *ident);

struct mlk_sprite *
mlk__loader_file_sprite_new(struct mlk__loader_file *loader);

struct mlk_animation *
mlk__loader_file_animation_new(struct mlk__loader_file *loader);

void
mlk__loader_file_free(struct mlk__loader_file *loader);

#endif /* !MLK_RPG_LOADER_FILE_P_H */