From d7c481a20baabddbee302ae3af2ea1328740cbba Mon Sep 17 00:00:00 2001 From: shweet Date: Tue, 11 Nov 2025 22:19:18 -0500 Subject: [PATCH] ................. --- src/anm2/sound.cpp | 7 ++++++- src/anm2/sound.h | 3 ++- src/anm2/spritesheet.cpp | 7 ++++++- src/anm2/spritesheet.h | 3 ++- src/resource/audio.cpp | 4 ++++ src/resource/audio.h | 4 ++++ src/resource/texture.cpp | 5 +++++ src/resource/texture.h | 3 +++ 8 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/anm2/sound.cpp b/src/anm2/sound.cpp index 9a14d13..2f79c66 100644 --- a/src/anm2/sound.cpp +++ b/src/anm2/sound.cpp @@ -29,6 +29,11 @@ namespace anm2ed::anm2 audio = Audio(this->path.c_str()); } + Sound::Sound(const std::filesystem::path& directory, const std::filesystem::path& path) + : Sound(directory.string(), path.string()) + { + } + Sound::Sound(XMLElement* element, int& id) { if (!element) return; @@ -63,4 +68,4 @@ namespace anm2ed::anm2 bool Sound::is_valid() { return audio.is_valid(); } void Sound::play() { audio.play(); } -} \ No newline at end of file +} diff --git a/src/anm2/sound.h b/src/anm2/sound.h index a0af85a..2e9b8ea 100644 --- a/src/anm2/sound.h +++ b/src/anm2/sound.h @@ -23,6 +23,7 @@ namespace anm2ed::anm2 Sound& operator=(const Sound&); Sound(tinyxml2::XMLElement*, int&); Sound(const std::string&, const std::string&); + Sound(const std::filesystem::path&, const std::filesystem::path&); tinyxml2::XMLElement* to_element(tinyxml2::XMLDocument&, int); std::string to_string(int); void serialize(tinyxml2::XMLDocument&, tinyxml2::XMLElement*, int); @@ -30,4 +31,4 @@ namespace anm2ed::anm2 bool is_valid(); void play(); }; -} \ No newline at end of file +} diff --git a/src/anm2/spritesheet.cpp b/src/anm2/spritesheet.cpp index 2eec783..c47d6ff 100644 --- a/src/anm2/spritesheet.cpp +++ b/src/anm2/spritesheet.cpp @@ -29,6 +29,11 @@ namespace anm2ed::anm2 texture = Texture(this->path); } + Spritesheet::Spritesheet(const std::filesystem::path& directory, const std::filesystem::path& path) + : Spritesheet(directory.string(), path.string()) + { + } + XMLElement* Spritesheet::to_element(XMLDocument& document, int id) { auto element = document.NewElement("Spritesheet"); @@ -60,4 +65,4 @@ namespace anm2ed::anm2 bool Spritesheet::is_valid() { return texture.is_valid(); } -} \ No newline at end of file +} diff --git a/src/anm2/spritesheet.h b/src/anm2/spritesheet.h index 6db08f9..dfdb87f 100644 --- a/src/anm2/spritesheet.h +++ b/src/anm2/spritesheet.h @@ -20,6 +20,7 @@ namespace anm2ed::anm2 Spritesheet() = default; Spritesheet(tinyxml2::XMLElement*, int&); Spritesheet(const std::string&, const std::string& = {}); + Spritesheet(const std::filesystem::path&, const std::filesystem::path& = {}); tinyxml2::XMLElement* to_element(tinyxml2::XMLDocument&, int); std::string to_string(int id); bool save(const std::string&, const std::string& = {}); @@ -27,4 +28,4 @@ namespace anm2ed::anm2 void reload(const std::string&); bool is_valid(); }; -} \ No newline at end of file +} diff --git a/src/resource/audio.cpp b/src/resource/audio.cpp index ba9bcf9..d89a023 100644 --- a/src/resource/audio.cpp +++ b/src/resource/audio.cpp @@ -16,6 +16,10 @@ namespace anm2ed::resource if (path && *path) internal = MIX_LoadAudio(mixer_get(), path, true); } + Audio::Audio(const std::string& path) : Audio(path.c_str()) {} + + Audio::Audio(const std::filesystem::path& path) : Audio(path.string()) {} + Audio::Audio(const unsigned char* data, size_t size) { SDL_IOStream* io = SDL_IOFromConstMem(data, size); diff --git a/src/resource/audio.h b/src/resource/audio.h index 33de290..0a31ddd 100644 --- a/src/resource/audio.h +++ b/src/resource/audio.h @@ -1,6 +1,8 @@ #pragma once #include +#include +#include #include namespace anm2ed::resource @@ -15,6 +17,8 @@ namespace anm2ed::resource public: Audio(const char*); Audio(const unsigned char*, size_t); + Audio(const std::string&); + Audio(const std::filesystem::path&); ~Audio(); Audio() = default; Audio(Audio&&) noexcept; diff --git a/src/resource/texture.cpp b/src/resource/texture.cpp index fc75619..92a1847 100644 --- a/src/resource/texture.cpp +++ b/src/resource/texture.cpp @@ -1,5 +1,6 @@ #include "texture.h" +#include #include #include #include @@ -123,11 +124,15 @@ namespace anm2ed::resource } } + Texture::Texture(const std::filesystem::path& pngPath) : Texture(pngPath.string()) {} + bool Texture::write_png(const std::string& path) { return stbi_write_png(path.c_str(), size.x, size.y, CHANNELS, this->pixels.data(), size.x * CHANNELS); } + bool Texture::write_png(const std::filesystem::path& path) { return write_png(path.string()); } + void Texture::pixel_set(ivec2 position, vec4 color) { if (position.x < 0 || position.y < 0 || position.x >= size.x || position.y >= size.y) return; diff --git a/src/resource/texture.h b/src/resource/texture.h index 87d9894..5ae03d5 100644 --- a/src/resource/texture.h +++ b/src/resource/texture.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include @@ -36,7 +37,9 @@ namespace anm2ed::resource Texture(const uint8_t*, glm::ivec2); Texture(const char*, size_t, glm::ivec2); Texture(const std::string&); + Texture(const std::filesystem::path&); bool write_png(const std::string&); + bool write_png(const std::filesystem::path&); void pixel_set(glm::ivec2, glm::vec4); void pixel_line(glm::ivec2, glm::ivec2, glm::vec4); };