Skip to content

Commit 2f2bad2

Browse files
committed
Icon Fixes
1 parent 895fb5c commit 2f2bad2

File tree

9 files changed

+42
-12
lines changed

9 files changed

+42
-12
lines changed

source/funkin/editors/character/CharacterInfoScreen.hx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,8 @@ class CharacterInfoScreen extends UISubstateWindow {
151151
if (iconSprite == null) add(iconSprite = new HealthIcon());
152152

153153
iconSprite.setIcon(icon);
154-
iconSprite.scale.set(iconSprite.defaultScale * 0.5, iconSprite.defaultScale * 0.5);
154+
var size = Std.int(150 * 0.5);
155+
iconSprite.setUnstretchedGraphicSize(size, size, true);
155156
iconSprite.updateHitbox();
156157
iconSprite.setPosition(iconTextBox.x + iconTextBox.bWidth + 8, iconTextBox.y + (iconTextBox.bHeight / 2) - (iconSprite.height / 2));
157158
iconSprite.scrollFactor.set(1, 1);

source/funkin/editors/charter/ChartCreationScreen.hx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,8 @@ class CompactCharacterButton extends UIButton {
320320
autoAlpha = false;
321321

322322
charIcon = new HealthIcon(funkin.game.Character.getIconFromCharName(char));
323-
charIcon.scale.set(charIcon.defaultScale * 0.2, charIcon.defaultScale * 0.2);
323+
var size = Std.int(150 * 0.2);
324+
charIcon.setUnstretchedGraphicSize(size, size, true);
324325
charIcon.updateHitbox();
325326
charIcon.setPosition(10, bHeight/2 - charIcon.height / 2);
326327
charIcon.scrollFactor.set(1,1);
@@ -333,7 +334,7 @@ class CompactCharacterButton extends UIButton {
333334
textBox.onChange = function(char:String) {
334335
char = funkin.game.Character.getIconFromCharName(char);
335336
charIcon.setIcon(char);
336-
charIcon.scale.set(charIcon.defaultScale * 0.2, charIcon.defaultScale * 0.2);
337+
charIcon.setUnstretchedGraphicSize(size, size, true);
337338
charIcon.updateHitbox();
338339
charIcon.setPosition(10, bHeight/2 - charIcon.height / 2);
339340
}

source/funkin/editors/charter/CharterMetaDataScreen.hx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@ class CharterMetaDataScreen extends UISubstateWindow {
134134
if (iconSprite == null) add(iconSprite = new HealthIcon());
135135

136136
iconSprite.setIcon(icon);
137-
iconSprite.scale.set(iconSprite.defaultScale * 0.5, iconSprite.defaultScale * 0.5);
137+
var size = Std.int(150 * 0.5);
138+
iconSprite.setUnstretchedGraphicSize(size, size, true);
138139
iconSprite.updateHitbox();
139140
iconSprite.setPosition(iconTextBox.x + iconTextBox.bWidth + 8, iconTextBox.y + (iconTextBox.bHeight / 2) - (iconSprite.height / 2));
140141
iconSprite.scrollFactor.set(1, 1);

source/funkin/editors/charter/CharterStrumline.hx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ class CharterStrumline extends UISprite {
9393
for (i=>icon in icons) {
9494
var healthIcon = new HealthIcon(Character.getIconFromCharName(icon));
9595
var newScale = 0.6 - (icons.length / 20);
96-
healthIcon.scale.x = healthIcon.scale.y = healthIcon.defaultScale * newScale;
96+
var size = Std.int(150 * newScale);
97+
healthIcon.setUnstretchedGraphicSize(size, size, true);
9798
healthIcon.updateHitbox();
9899
healthIcon.x = FlxMath.lerp(0, icons.length * 20, (icons.length-1 != 0 ? i / (icons.length-1) : 0));
99100
healthIcon.y = draggable ? 14 : 7;

source/funkin/editors/charter/CharterStrumlineScreen.hx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,8 @@ class CharacterButton extends UIButton {
194194
super(x, y, "", null, 250, 54);
195195

196196
charIcon = new HealthIcon(Character.getIconFromCharName(char));
197-
charIcon.scale.set(charIcon.defaultScale * 0.3, charIcon.defaultScale * 0.3);
197+
var size = Std.int(150 * 0.3);
198+
charIcon.setUnstretchedGraphicSize(size, size, true);
198199
charIcon.updateHitbox();
199200
charIcon.setPosition(x + 10, bHeight/2 - charIcon.height / 2);
200201
charIcon.scrollFactor.set(1,1);
@@ -207,7 +208,7 @@ class CharacterButton extends UIButton {
207208
textBox.onChange = function(char:String) {
208209
char = Character.getIconFromCharName(char);
209210
charIcon.setIcon(char);
210-
charIcon.scale.set(charIcon.defaultScale * 0.3, charIcon.defaultScale * 0.3);
211+
charIcon.setUnstretchedGraphicSize(size, size, true);
211212
charIcon.updateHitbox();
212213
charIcon.setPosition(x + 10, bHeight/2 - charIcon.height / 2);
213214
}

source/funkin/editors/charter/SongCreationScreen.hx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,8 @@ class SongCreationScreen extends UISubstateWindow {
235235
if (iconSprite == null) menuDataGroup.add(iconSprite = new HealthIcon());
236236

237237
iconSprite.setIcon(icon);
238-
iconSprite.scale.set(iconSprite.defaultScale * 0.5, iconSprite.defaultScale * 0.5);
238+
var size = Std.int(150 * 0.5);
239+
iconSprite.setUnstretchedGraphicSize(size, size, true);
239240
iconSprite.updateHitbox();
240241
iconSprite.setPosition(iconTextBox.x + iconTextBox.bWidth + 8, iconTextBox.y + (iconTextBox.bHeight / 2) - (iconSprite.height / 2));
241242
iconSprite.scrollFactor.set(1, 1);

source/funkin/game/HealthIcon.hx

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,14 +162,18 @@ class HealthIcon extends FunkinSprite
162162

163163
animateAtlas = null; // reset
164164
if (this.animated)
165-
loadSprite(Paths.image(iconPath));
165+
loadSprite(Paths.image(newIconPath));
166166
else {
167167
var iconAsset:FlxGraphic = FlxG.bitmap.add(Paths.image(iconPath));
168168
var assetW:Float = iconAsset.width;
169169
var assetH:Float = iconAsset.height;
170170

171-
iconAmt = Math.floor(assetW / assetH);
171+
iconAmt = Math.round(assetW / assetH); // Just in case the icon is in a weird aspect ratio
172172
iconSize = Math.floor(assetW / iconAmt);
173+
if (iconSize * iconAmt > assetW) {
174+
iconSize = Math.floor(assetW / iconAmt);
175+
iconAmt = Math.floor(assetW / iconSize);
176+
}
173177

174178
loadGraphic(iconAsset, true, Std.int(Math.min(iconSize, assetW)), Std.int(Math.min(iconSize, assetH)));
175179

@@ -238,8 +242,20 @@ class HealthIcon extends FunkinSprite
238242

239243
var animName = node.get("name");
240244

241-
if (node.exists("offsetX") || node.exists("offsetY"))
242-
addOffset(animName, Std.parseFloat(node.get("offsetX")).getDefault(0), Std.parseFloat(node.get("offsetY")).getDefault(0));
245+
var offsetX:Float = 0;
246+
var offsetY:Float = 0;
247+
if (node.exists("offsetX"))
248+
offsetX = Std.parseFloat(node.get("offsetX")).getDefault(0);
249+
else if (node.exists("offsetx"))
250+
offsetX = Std.parseFloat(node.get("offsetx")).getDefault(0);
251+
252+
if (node.exists("offsetY"))
253+
offsetY = Std.parseFloat(node.get("offsetY")).getDefault(0);
254+
else if (node.exists("offsety"))
255+
offsetY = Std.parseFloat(node.get("offsety")).getDefault(0);
256+
257+
addOffset(animName, offsetX, offsetY);
258+
243259
addAnim(animName, node.get("anim"), Std.parseInt(node.get("fps")).getDefault(24), node.get("looped").getDefault("true").toLowerCase() == "true");
244260
if (animateAtlas == null && animation.exists(animName))
245261
animation.getByName(animName).flipX = isPlayer != iconIsPlayer;
@@ -299,6 +315,8 @@ class HealthIcon extends FunkinSprite
299315
}
300316

301317
defaultScale = (xmlValid && xmlData.exists("scale")) ? Std.parseFloat(xmlData.get("scale")).getDefault(scale.x) : scale.x;
318+
scale.set(defaultScale, defaultScale);
319+
updateHitbox();
302320
}
303321

304322
var normalizedNames = ["neutral", "losing", "winning"];

source/funkin/menus/FreeplayState.hx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ class FreeplayState extends MusicBeatState
141141

142142
var icon:HealthIcon = new HealthIcon(songs[i].icon);
143143
icon.sprTracker = songText;
144+
icon.setUnstretchedGraphicSize(150, 150, true);
145+
icon.updateHitbox();
144146

145147
// using a FlxGroup is too much fuss!
146148
iconArray.push(icon);

source/funkin/options/type/IconOption.hx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ class IconOption extends TextOption {
1010

1111
iconSpr = new HealthIcon(icon, false);
1212
iconSpr.setPosition(90 - iconSpr.width, (__text.height - iconSpr.height) / 2);
13+
iconSpr.setUnstretchedGraphicSize(150, 150, true);
14+
iconSpr.updateHitbox();
15+
iconSpr.sprTracker = __text;
16+
iconSpr.sprTrackerAlignment = LEFT;
1317
add(iconSpr);
1418
}
1519
}

0 commit comments

Comments
 (0)