Squashed 'deps/nostalgia/' changes from c501fc04..ab025e88
ab025e88 [nostalgia] Change Palette converter color idx to be 0 based bd2e88cd [olympic,nostalgia] Cleanup with StringParam f4a9872f [ox/std] Add StringParam f8aa60e4 [ox/std] Fix itoa result length calculation 3ead305f [nostalgia/core/studio/tilesheeteditor] Fix Fill command to properly end eb498ca5 [ox/event] Comment out Signal disconnect warning git-subtree-dir: deps/nostalgia git-subtree-split: ab025e88daed941b926fd8d9d9b824c22c32749c
This commit is contained in:
		@@ -29,7 +29,7 @@ ox::Error PaletteV2ToPaletteV3Converter::convert(
 | 
			
		||||
	dst.pages = std::move(src.pages);
 | 
			
		||||
	if (!dst.pages.empty()) {
 | 
			
		||||
		for (size_t i = 0; i < dst.pages[0].size(); ++i) {
 | 
			
		||||
			dst.colorInfo.emplace_back(ox::sfmt("Color {}", i));
 | 
			
		||||
			dst.colorInfo.emplace_back(ox::sfmt("Color {}", i + 1));
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return {};
 | 
			
		||||
 
 | 
			
		||||
@@ -17,8 +17,8 @@ namespace nostalgia::core {
 | 
			
		||||
 | 
			
		||||
namespace ig = studio::ig;
 | 
			
		||||
 | 
			
		||||
PaletteEditorImGui::PaletteEditorImGui(studio::StudioContext &sctx, ox::StringView const path):
 | 
			
		||||
		Editor(path),
 | 
			
		||||
PaletteEditorImGui::PaletteEditorImGui(studio::StudioContext &sctx, ox::StringParam path):
 | 
			
		||||
		Editor(std::move(path)),
 | 
			
		||||
		m_sctx(sctx),
 | 
			
		||||
		m_tctx(sctx.tctx),
 | 
			
		||||
		m_pal(*keel::readObj<Palette>(keelCtx(m_tctx), itemPath()).unwrapThrow()) {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ class PaletteEditorImGui: public studio::Editor {
 | 
			
		||||
		size_t m_page = 0;
 | 
			
		||||
 | 
			
		||||
	public:
 | 
			
		||||
		PaletteEditorImGui(studio::StudioContext &sctx, ox::StringView path);
 | 
			
		||||
		PaletteEditorImGui(studio::StudioContext &sctx, ox::StringParam path);
 | 
			
		||||
 | 
			
		||||
		void keyStateChanged(turbine::Key key, bool down) override;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -21,13 +21,13 @@ DrawCommand::DrawCommand(
 | 
			
		||||
DrawCommand::DrawCommand(
 | 
			
		||||
		TileSheet &img,
 | 
			
		||||
		TileSheet::SubSheetIdx subSheetIdx,
 | 
			
		||||
		const ox::Vector<std::size_t> &idxList,
 | 
			
		||||
		ox::Vector<std::size_t> const&idxList,
 | 
			
		||||
		int palIdx) noexcept:
 | 
			
		||||
		m_img(img),
 | 
			
		||||
		m_subSheetIdx(std::move(subSheetIdx)),
 | 
			
		||||
		m_palIdx(palIdx) {
 | 
			
		||||
	auto &subsheet = getSubSheet(m_img, m_subSheetIdx);
 | 
			
		||||
	for (const auto idx : idxList) {
 | 
			
		||||
	for (auto const idx : idxList) {
 | 
			
		||||
		m_changes.emplace_back(static_cast<uint32_t>(idx), getPixel(subsheet, m_img.bpp, idx));
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -36,7 +36,7 @@ bool DrawCommand::append(std::size_t idx) noexcept {
 | 
			
		||||
	auto &subsheet = getSubSheet(m_img, m_subSheetIdx);
 | 
			
		||||
	if (m_changes.back().value->idx != idx && getPixel(subsheet, m_img.bpp, idx) != m_palIdx) {
 | 
			
		||||
		// duplicate entries are bad
 | 
			
		||||
		auto existing = ox::find_if(m_changes.cbegin(), m_changes.cend(), [idx](const auto &c) {
 | 
			
		||||
		auto existing = ox::find_if(m_changes.cbegin(), m_changes.cend(), [idx](auto const&c) {
 | 
			
		||||
			return c.idx == idx;
 | 
			
		||||
		});
 | 
			
		||||
		if (existing == m_changes.cend()) {
 | 
			
		||||
@@ -48,7 +48,7 @@ bool DrawCommand::append(std::size_t idx) noexcept {
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool DrawCommand::append(const ox::Vector<std::size_t> &idxList) noexcept {
 | 
			
		||||
bool DrawCommand::append(ox::Vector<std::size_t> const&idxList) noexcept {
 | 
			
		||||
	auto out = false;
 | 
			
		||||
	for (auto idx : idxList) {
 | 
			
		||||
		out = append(idx) || out;
 | 
			
		||||
@@ -58,7 +58,7 @@ bool DrawCommand::append(const ox::Vector<std::size_t> &idxList) noexcept {
 | 
			
		||||
 | 
			
		||||
ox::Error DrawCommand::redo() noexcept {
 | 
			
		||||
	auto &subsheet = getSubSheet(m_img, m_subSheetIdx);
 | 
			
		||||
	for (const auto &c : m_changes) {
 | 
			
		||||
	for (auto const&c : m_changes) {
 | 
			
		||||
		setPixel(subsheet, m_img.bpp, c.idx, static_cast<uint8_t>(m_palIdx));
 | 
			
		||||
	}
 | 
			
		||||
	return {};
 | 
			
		||||
@@ -66,7 +66,7 @@ ox::Error DrawCommand::redo() noexcept {
 | 
			
		||||
 | 
			
		||||
ox::Error DrawCommand::undo() noexcept {
 | 
			
		||||
	auto &subsheet = getSubSheet(m_img, m_subSheetIdx);
 | 
			
		||||
	for (const auto &c : m_changes) {
 | 
			
		||||
	for (auto const&c : m_changes) {
 | 
			
		||||
		setPixel(subsheet, m_img.bpp, c.idx, static_cast<uint8_t>(c.oldPalIdx));
 | 
			
		||||
	}
 | 
			
		||||
	return {};
 | 
			
		||||
 
 | 
			
		||||
@@ -33,12 +33,12 @@ class DrawCommand: public TileSheetCommand {
 | 
			
		||||
		DrawCommand(
 | 
			
		||||
				TileSheet &img,
 | 
			
		||||
				TileSheet::SubSheetIdx subSheetIdx,
 | 
			
		||||
				const ox::Vector<std::size_t> &idxList,
 | 
			
		||||
				ox::Vector<std::size_t> const&idxList,
 | 
			
		||||
				int palIdx) noexcept;
 | 
			
		||||
 | 
			
		||||
		bool append(std::size_t idx) noexcept;
 | 
			
		||||
 | 
			
		||||
		bool append(const ox::Vector<std::size_t> &idxList) noexcept;
 | 
			
		||||
		bool append(ox::Vector<std::size_t> const&idxList) noexcept;
 | 
			
		||||
 | 
			
		||||
		ox::Error redo() noexcept final;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -86,11 +86,11 @@ static ox::Error toPngFile(
 | 
			
		||||
					8)));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TileSheetEditorImGui::TileSheetEditorImGui(studio::StudioContext &sctx, ox::StringView const path):
 | 
			
		||||
		Editor(path),
 | 
			
		||||
TileSheetEditorImGui::TileSheetEditorImGui(studio::StudioContext &sctx, ox::StringParam path):
 | 
			
		||||
		Editor(std::move(path)),
 | 
			
		||||
		m_sctx(sctx),
 | 
			
		||||
		m_tctx(m_sctx.tctx),
 | 
			
		||||
		m_view(m_sctx, path, *undoStack()),
 | 
			
		||||
		m_view(m_sctx, itemPath(), *undoStack()),
 | 
			
		||||
		m_model(m_view.model()) {
 | 
			
		||||
	std::ignore = setPaletteSelection();
 | 
			
		||||
	// connect signal/slots
 | 
			
		||||
 
 | 
			
		||||
@@ -67,7 +67,7 @@ class TileSheetEditorImGui: public studio::Editor {
 | 
			
		||||
		TileSheetTool m_tool = TileSheetTool::Draw;
 | 
			
		||||
 | 
			
		||||
	public:
 | 
			
		||||
		TileSheetEditorImGui(studio::StudioContext &sctx, ox::StringView path);
 | 
			
		||||
		TileSheetEditorImGui(studio::StudioContext &sctx, ox::StringParam path);
 | 
			
		||||
 | 
			
		||||
		~TileSheetEditorImGui() override = default;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -87,12 +87,12 @@ void TileSheetEditorView::clickFill(ox::Vec2 const&paneSize, ox::Vec2 const&clic
 | 
			
		||||
void TileSheetEditorView::releaseMouseButton(TileSheetTool tool) noexcept {
 | 
			
		||||
	switch (tool) {
 | 
			
		||||
		case TileSheetTool::Draw:
 | 
			
		||||
		case TileSheetTool::Fill:
 | 
			
		||||
			m_model.endDrawCommand();
 | 
			
		||||
			break;
 | 
			
		||||
		case TileSheetTool::Select:
 | 
			
		||||
			m_model.completeSelection();
 | 
			
		||||
			break;
 | 
			
		||||
		case TileSheetTool::Fill:
 | 
			
		||||
		case TileSheetTool::None:
 | 
			
		||||
			break;
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user