[nostalgia/studio] Get save working
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
* Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
|
||||
*/
|
||||
|
||||
#include <ox/claw/write.hpp>
|
||||
|
||||
#include <nostalgia/core/media.hpp>
|
||||
|
||||
#include "tilesheeteditormodel.hpp"
|
||||
@@ -9,6 +11,8 @@
|
||||
namespace nostalgia::core {
|
||||
|
||||
TileSheetEditorModel::TileSheetEditorModel(Context *ctx, const ox::String &path) {
|
||||
m_ctx = ctx;
|
||||
m_path = path;
|
||||
oxRequireT(img, readObj<TileSheet>(ctx, path.c_str()));
|
||||
m_img = *img;
|
||||
oxThrowError(readObj<Palette>(ctx, m_img.defaultPalette).moveTo(&m_pal));
|
||||
@@ -46,6 +50,12 @@ void TileSheetEditorModel::ackUpdate() noexcept {
|
||||
m_updated = false;
|
||||
}
|
||||
|
||||
ox::Error TileSheetEditorModel::saveFile() noexcept {
|
||||
oxRequire(buff, ox::writeClaw(&m_img));
|
||||
oxReturnError(m_ctx->rom->write(m_path.c_str(), buff.data(), buff.size()));
|
||||
return m_ctx->assetManager.setAsset(m_path, m_img).error;
|
||||
}
|
||||
|
||||
void TileSheetEditorModel::getFillPixels(bool *pixels, const geo::Point &pt, int oldColor) const noexcept {
|
||||
const auto tileIdx = [this](const geo::Point &pt) noexcept {
|
||||
return ptToIdx(pt, img().columns()) / PixelsPerTile;
|
||||
|
||||
Reference in New Issue
Block a user