Revert "skins: SkinManager + hot-swap (F7), classic/nes a data/skins/"
This reverts commit ebfcad6f22.
This commit is contained in:
@@ -8,8 +8,6 @@
|
||||
#include "core/rendering/texture.h"
|
||||
#include "core/resources/asset.h"
|
||||
#include "core/resources/resource_helper.h"
|
||||
#include "core/resources/skin_manager.hpp"
|
||||
#include "game/options.hpp"
|
||||
#include "game/ui/menu.h"
|
||||
|
||||
// Nota: Asset::get() e Input::get() se consultan en preloadAll y al construir
|
||||
@@ -265,41 +263,3 @@ auto Resource::getMenu(const std::string &name) -> Menu * {
|
||||
}
|
||||
return it->second;
|
||||
}
|
||||
|
||||
void Resource::reloadForSkin(const std::string &skin_id) {
|
||||
if (SkinManager::get() == nullptr || !SkinManager::get()->exists(skin_id)) {
|
||||
return;
|
||||
}
|
||||
|
||||
SkinManager::get()->setCurrent(skin_id);
|
||||
Asset::get()->onSkinChanged();
|
||||
|
||||
// Recarrega cada textura cachejada des del nou path mantenint pointer
|
||||
// identity perquè els Sprites no s'invaliden.
|
||||
for (auto &[bname, tex] : textures_) {
|
||||
const std::string NEW_PATH = Asset::get()->get(bname);
|
||||
if (!NEW_PATH.empty()) {
|
||||
tex->reLoadFromPath(NEW_PATH);
|
||||
}
|
||||
}
|
||||
|
||||
// Re-parseja els fitxers .ani de la nova skin.
|
||||
for (auto &[bname, lines] : animation_lines_) {
|
||||
const std::string NEW_PATH = Asset::get()->get(bname);
|
||||
if (NEW_PATH.empty()) { continue; }
|
||||
auto bytes = ResourceHelper::loadFile(NEW_PATH);
|
||||
if (bytes.empty()) { continue; }
|
||||
std::string content(reinterpret_cast<const char *>(bytes.data()), bytes.size());
|
||||
std::stringstream ss(content);
|
||||
std::vector<std::string> new_lines;
|
||||
std::string line;
|
||||
while (std::getline(ss, line)) {
|
||||
if (!line.empty() && line.back() == '\r') { line.pop_back(); }
|
||||
new_lines.push_back(line);
|
||||
}
|
||||
lines = std::move(new_lines);
|
||||
}
|
||||
|
||||
Options::settings.skin = skin_id;
|
||||
Options::saveToFile();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user