mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2024-12-28 06:37:11 +01:00
SpriteFramesEditor
Fix calculating frame index from mouse position
(cherry picked from commit d1359579874b747ab34bdbdb23411b5dc733a609)
This commit is contained in:
parent
1d8716a903
commit
781b1915d3
@ -102,14 +102,18 @@ int SpriteFramesEditor::_sheet_preview_position_to_frame_index(const Point2 &p_p
|
|||||||
const Size2i block_size = frame_size + separation;
|
const Size2i block_size = frame_size + separation;
|
||||||
const Point2i position = p_position / sheet_zoom - offset;
|
const Point2i position = p_position / sheet_zoom - offset;
|
||||||
|
|
||||||
if (position.x % block_size.x > frame_size.x || position.y % block_size.y > frame_size.y) {
|
if (position.x < 0 || position.y < 0) {
|
||||||
|
return -1; // Out of bounds.
|
||||||
|
}
|
||||||
|
|
||||||
|
if (position.x % block_size.x >= frame_size.x || position.y % block_size.y >= frame_size.y) {
|
||||||
return -1; // Gap between frames.
|
return -1; // Gap between frames.
|
||||||
}
|
}
|
||||||
|
|
||||||
const Point2i frame = position / block_size;
|
const Point2i frame = position / block_size;
|
||||||
const Size2i frame_count = _get_frame_count();
|
const Size2i frame_count = _get_frame_count();
|
||||||
if (frame.x < 0 || frame.y < 0 || frame.x >= frame_count.x || frame.y >= frame_count.y) {
|
if (frame.x >= frame_count.x || frame.y >= frame_count.y) {
|
||||||
return -1; // Out of bound.
|
return -1; // Out of bounds.
|
||||||
}
|
}
|
||||||
|
|
||||||
return frame_count.x * frame.y + frame.x;
|
return frame_count.x * frame.y + frame.x;
|
||||||
|
Loading…
Reference in New Issue
Block a user