Skip to content

Commit fd3dd81

Browse files
committed
some character saving adjustments
1 parent ea51eb6 commit fd3dd81

4 files changed

Lines changed: 39 additions & 9 deletions

File tree

assets/data/editors/layouts/stage/characterEditScreen.xml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,36 @@
156156
}
157157
char.name = posName;
158158

159+
function saveXY(name:String, x:UINumericStepper, y:UINumericStepper) {
160+
button.xml.remove(name + "");
161+
button.xml.remove(name + "x");
162+
button.xml.remove(name + "y");
163+
164+
if(x.value == y.value)
165+
button.xml.set(name, x.value);
166+
else {
167+
button.xml.set(name + "x", x.value);
168+
button.xml.set(name + "y", y.value);
169+
}
170+
}
171+
172+
if (!StringTools.startsWith(char.name, "NO_DELETE_"))
173+
button.xml.set("name", char.name);
174+
saveXY("", xStepper, yStepper);
175+
button.xml.set("camxoffset", camxStepper.value);
176+
button.xml.set("camyoffset", camyStepper.value);
177+
178+
saveXY("scale", scaleXStepper, scaleYStepper);
179+
saveXY("scroll", scrollXStepper, scrollYStepper);
180+
button.xml.set("zoomfactor", zoomFactorStepper.value);
181+
button.xml.set("alpha", alphaStepper.value);
182+
button.xml.set("angle", angleStepper.value);
183+
button.xml.set("skewx", skewXStepper.value);
184+
button.xml.set("skewy", skewYStepper.value);
185+
186+
button.xml.remove("flip");
187+
button.xml.remove("flipX");
188+
button.xml.set("flip", flipXCheckbox.checked);
159189
}
160190
</exec>
161191
</window>

assets/data/editors/layouts/stage/spriteEditScreen.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,9 +229,6 @@
229229
button.xml.set(name, value);
230230
}
231231

232-
// TODO: remove old attributes to prevent possible errors
233-
// button.xml.remove();
234-
235232
button.xml.set("name", nameTextBox.label.text);
236233
button.xml.set("sprite", spriteTextBox.label.text);
237234
button.xml.set("x", xStepper.value);

source/funkin/editors/stage/elements/StageCharacterButton.hx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ class StageCharacterButton extends StageElementButton {
4343

4444
override public function getDefaults():Map<String, Dynamic> {
4545
return [
46-
"flip" => false,
47-
"flipX" => false,
46+
"flip" => char.name == "NO_DELETE_boyfriend",
47+
"flipX" => char.name == "NO_DELETE_boyfriend",
4848
"camxoffset" => 0,
4949
"camyoffset" => 0,
5050
"spacingx" => 0,
@@ -54,12 +54,13 @@ class StageCharacterButton extends StageElementButton {
5454
"zoomfactor" => 1,
5555
"alpha" => 1,
5656
"angle" => 0,
57-
"skew" => 0
57+
"skewx" => 0,
58+
"skewy" => 0
5859
];
5960
}
6061

6162
override public function getPointAttributes():Array<String> {
62-
return ["scale", "scroll", "skew"];
63+
return ["scale", "scroll"];
6364
}
6465

6566
override public function getAttributeOrder():Array<String> {

source/funkin/editors/stage/elements/StageElementButton.hx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,9 +243,11 @@ class StageElementButton extends UIButton {
243243

244244
var value:Dynamic = def is Float ? Std.parseFloat(xml.x.get(attrib)) : xml.x.get(attrib);
245245
if (value == def || (def is Float && Math.abs(def - value) < 0.001)) {
246-
if (!attribIsPoint || queuedPoints.contains(attrib))
246+
if (!attribIsPoint || queuedPoints.contains(attrib)) {
247247
xml.x.remove(a);
248-
else
248+
if (attribIsPoint)
249+
xml.x.remove(attrib + (a.charCodeAt(a.length - 1) == 'x'.code ? 'y' : 'x'));
250+
} else
249251
queuedPoints.push(attrib);
250252
}
251253
}

0 commit comments

Comments
 (0)