mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-11 05:07:00 -04:00
Symmetry actions now work; reflection symmetry is forced to use a multiple of two copies
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@539 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
@@ -474,7 +474,12 @@ void SymmetryMoveAction::move(const Vector2D& deltaDelta) {
|
||||
SymmetryTypeAction::SymmetryTypeAction(SymbolSymmetry& symmetry, SymbolSymmetryType type)
|
||||
: symmetry(symmetry), type(type)
|
||||
, old_name(symmetry.name)
|
||||
, copies(symmetry.copies)
|
||||
{
|
||||
if (type == SYMMETRY_REFLECTION && symmetry.copies % 2 == 1) {
|
||||
// make sure it is a multiple of two
|
||||
copies = copies / 2 * 2;
|
||||
}
|
||||
// update name?
|
||||
if (old_name == symmetry.expectedName()) {
|
||||
swap(symmetry.kind, type);
|
||||
@@ -489,15 +494,21 @@ String SymmetryTypeAction::getName(bool to_undo) const {
|
||||
|
||||
void SymmetryTypeAction::perform(bool to_undo) {
|
||||
swap(symmetry.kind, type);
|
||||
swap(symmetry.copies, copies);
|
||||
swap(symmetry.name, old_name);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------- : Change symmetry copies
|
||||
|
||||
SymmetryCopiesAction::SymmetryCopiesAction(SymbolSymmetry& symmetry, int copies)
|
||||
: symmetry(symmetry), copies(copies)
|
||||
SymmetryCopiesAction::SymmetryCopiesAction(SymbolSymmetry& symmetry, int copies_)
|
||||
: symmetry(symmetry), copies(copies_)
|
||||
, old_name(symmetry.name)
|
||||
{
|
||||
if (symmetry.kind == SYMMETRY_REFLECTION && copies % 2 == 1) {
|
||||
// make sure it is a multiple of two
|
||||
if (copies > symmetry.copies) copies++;
|
||||
else copies--;
|
||||
}
|
||||
// update name?
|
||||
if (old_name == symmetry.expectedName()) {
|
||||
swap(symmetry.copies, copies);
|
||||
|
||||
@@ -210,6 +210,7 @@ class SymmetryTypeAction : public Action {
|
||||
SymbolSymmetry& symmetry;
|
||||
SymbolSymmetryType type;
|
||||
String old_name;
|
||||
int copies; /// may be changed to make it a multiple of two
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------- : Change symmetry copies
|
||||
|
||||
Reference in New Issue
Block a user