[nostalgia/core] Upgrade TileSheet format to support subsheets and add conversion system
This commit is contained in:
@@ -25,9 +25,9 @@ void TileSheetEditorModel::paste() {
|
||||
|
||||
void TileSheetEditorModel::drawCommand(const geo::Point &pt, std::size_t palIdx) noexcept {
|
||||
if (m_ongoingDrawCommand) {
|
||||
m_updated = m_ongoingDrawCommand->append(ptToIdx(pt, m_img.columns));
|
||||
m_updated = m_ongoingDrawCommand->append(ptToIdx(pt, m_img.columns()));
|
||||
} else {
|
||||
const auto idx = ptToIdx(pt, m_img.columns);
|
||||
const auto idx = ptToIdx(pt, m_img.columns());
|
||||
if (m_img.getPixel(idx) != palIdx) {
|
||||
pushCommand(new DrawCommand(&m_updated, &m_img, idx, palIdx));
|
||||
}
|
||||
@@ -48,7 +48,7 @@ void TileSheetEditorModel::ackUpdate() noexcept {
|
||||
|
||||
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;
|
||||
return ptToIdx(pt, img().columns()) / PixelsPerTile;
|
||||
};
|
||||
// get points
|
||||
const auto leftPt = pt + geo::Point(-1, 0);
|
||||
@@ -56,11 +56,11 @@ void TileSheetEditorModel::getFillPixels(bool *pixels, const geo::Point &pt, int
|
||||
const auto topPt = pt + geo::Point(0, -1);
|
||||
const auto bottomPt = pt + geo::Point(0, 1);
|
||||
// calculate indices
|
||||
const auto idx = ptToIdx(pt, m_img.columns);
|
||||
const auto leftIdx = ptToIdx(leftPt, m_img.columns);
|
||||
const auto rightIdx = ptToIdx(rightPt, m_img.columns);
|
||||
const auto topIdx = ptToIdx(topPt, m_img.columns);
|
||||
const auto bottomIdx = ptToIdx(bottomPt, m_img.columns);
|
||||
const auto idx = ptToIdx(pt, m_img.columns());
|
||||
const auto leftIdx = ptToIdx(leftPt, m_img.columns());
|
||||
const auto rightIdx = ptToIdx(rightPt, m_img.columns());
|
||||
const auto topIdx = ptToIdx(topPt, m_img.columns());
|
||||
const auto bottomIdx = ptToIdx(bottomPt, m_img.columns());
|
||||
const auto tile = tileIdx(pt);
|
||||
// mark pixels to update
|
||||
pixels[idx % PixelsPerTile] = true;
|
||||
|
||||
Reference in New Issue
Block a user