diff --git a/.github/hooks/post-checkout b/.github/hooks/post-checkout
old mode 100644
new mode 100755
diff --git a/.github/hooks/post-merge b/.github/hooks/post-merge
old mode 100644
new mode 100755
diff --git a/.github/hooks/pre-push b/.github/hooks/pre-push
old mode 100644
new mode 100755
diff --git a/Project.xml b/Project.xml
index 0a44a268c..2e056426c 100644
--- a/Project.xml
+++ b/Project.xml
@@ -124,7 +124,7 @@
-
+
diff --git a/hmm.json b/hmm.json
index 300f0287f..67511a638 100644
--- a/hmm.json
+++ b/hmm.json
@@ -46,10 +46,10 @@
"version": "3.5.0"
},
{
- "name": "funkVis",
+ "name": "funkin.vis",
"type": "git",
"dir": null,
- "ref": "7fc9901553fbe9b8fcf6e2e84bc86eabeaf29701",
+ "ref": "98c9db09f0bbfedfe67a84538a5814aaef80bdea",
"url": "https://github.com/FunkinCrew/funkVis"
},
{
diff --git a/source/funkin/audio/visualize/ABotVis.hx b/source/funkin/audio/visualize/ABotVis.hx
index 0295e35ff..ca77dd58a 100644
--- a/source/funkin/audio/visualize/ABotVis.hx
+++ b/source/funkin/audio/visualize/ABotVis.hx
@@ -8,8 +8,8 @@ import flixel.group.FlxSpriteGroup.FlxTypedSpriteGroup;
import flixel.math.FlxMath;
import flixel.sound.FlxSound;
import funkin.util.MathUtil;
-import funkVis.dsp.SpectralAnalyzer;
-import funkVis.audioclip.frontends.LimeAudioClip;
+import funkin.vis.dsp.SpectralAnalyzer;
+import funkin.vis.audioclip.frontends.LimeAudioClip;
using Lambda;
@@ -90,7 +90,7 @@ class ABotVis extends FlxTypedSpriteGroup
}
/**
- * TJW funkVis based visualizer! updateFFT() is the old nasty shit that dont worky!
+ * TJW funkin.vis based visualizer! updateFFT() is the old nasty shit that dont worky!
*/
function drawFFT():Void
{
diff --git a/source/funkin/play/components/PopUpStuff.hx b/source/funkin/play/components/PopUpStuff.hx
index b062b22cf..b7e206e97 100644
--- a/source/funkin/play/components/PopUpStuff.hx
+++ b/source/funkin/play/components/PopUpStuff.hx
@@ -42,7 +42,7 @@ class PopUpStuff extends FlxTypedGroup
if (PlayState.instance.currentStageId.startsWith('school'))
{
- rating.setGraphicSize(Std.int(rating.width * Constants.PIXEL_ART_SCALE * 0.65));
+ rating.setGraphicSize(Std.int(rating.width * Constants.PIXEL_ART_SCALE * 0.7));
rating.antialiasing = false;
}
else
@@ -133,7 +133,7 @@ class PopUpStuff extends FlxTypedGroup
if (PlayState.instance.currentStageId.startsWith('school'))
{
- numScore.setGraphicSize(Std.int(numScore.width * Constants.PIXEL_ART_SCALE));
+ numScore.setGraphicSize(Std.int(numScore.width * Constants.PIXEL_ART_SCALE * 0.7));
numScore.antialiasing = false;
}
else
diff --git a/source/funkin/play/event/FocusCameraSongEvent.hx b/source/funkin/play/event/FocusCameraSongEvent.hx
index 569dcb87a..074fafccf 100644
--- a/source/funkin/play/event/FocusCameraSongEvent.hx
+++ b/source/funkin/play/event/FocusCameraSongEvent.hx
@@ -127,7 +127,7 @@ class FocusCameraSongEvent extends SongEvent
switch (ease)
{
case 'CLASSIC': // Old-school. No ease. Just set follow point.
- PlayState.instance.resetCamera();
+ PlayState.instance.resetCamera(false, true);
PlayState.instance.cameraFollowPoint.setPosition(targetX, targetY);
case 'INSTANT': // Instant ease. Duration is automatically 0.
PlayState.instance.tweenCameraToPosition(targetX, targetY, 0);
diff --git a/source/funkin/ui/freeplay/FreeplayState.hx b/source/funkin/ui/freeplay/FreeplayState.hx
index b16cbe63a..bd558f747 100644
--- a/source/funkin/ui/freeplay/FreeplayState.hx
+++ b/source/funkin/ui/freeplay/FreeplayState.hx
@@ -456,6 +456,14 @@ class FreeplayState extends MusicBeatSubState
default:
generateSongList({filterType: REGEXP, filterData: str}, true);
}
+
+ // We want to land on the first song of the group, rather than random song when changing letter sorts
+ // that is, only if there's more than one song in the group!
+ if (grpCapsules.members.length > 0)
+ {
+ curSelected = 1;
+ changeSelection();
+ }
};
exitMovers.set([fp, txtCompletion, fnfHighscoreSpr],
diff --git a/source/funkin/ui/options/FunkinSoundTray.hx b/source/funkin/ui/options/FunkinSoundTray.hx
index 4af94569b..b8c408508 100644
--- a/source/funkin/ui/options/FunkinSoundTray.hx
+++ b/source/funkin/ui/options/FunkinSoundTray.hx
@@ -20,6 +20,7 @@ class FunkinSoundTray extends FlxSoundTray
{
var graphicScale:Float = 0.30;
var lerpYPos:Float = 0;
+ var alphaTarget:Float = 0;
var volumeMaxSound:String;
@@ -40,7 +41,7 @@ class FunkinSoundTray extends FlxSoundTray
// makes an alpha'd version of all the bars (bar_10.png)
var backingBar:Bitmap = new Bitmap(Assets.getBitmapData(Paths.image("soundtray/bars_10")));
- backingBar.x = 10;
+ backingBar.x = 9;
backingBar.y = 5;
backingBar.scaleX = graphicScale;
backingBar.scaleY = graphicScale;
@@ -56,7 +57,7 @@ class FunkinSoundTray extends FlxSoundTray
for (i in 1...11)
{
var bar:Bitmap = new Bitmap(Assets.getBitmapData(Paths.image("soundtray/bars_" + i)));
- bar.x = 10;
+ bar.x = 9;
bar.y = 5;
bar.scaleX = graphicScale;
bar.scaleY = graphicScale;
@@ -77,15 +78,18 @@ class FunkinSoundTray extends FlxSoundTray
override public function update(MS:Float):Void
{
y = MathUtil.coolLerp(y, lerpYPos, 0.1);
+ alpha = MathUtil.coolLerp(alpha, alphaTarget, 0.25);
// Animate sound tray thing
if (_timer > 0)
{
_timer -= (MS / 1000);
+ alphaTarget = 1;
}
else if (y > -height)
{
lerpYPos = -height - 10;
+ alphaTarget = 0;
if (y <= -height)
{
diff --git a/source/funkin/ui/transition/LoadingState.hx b/source/funkin/ui/transition/LoadingState.hx
index 3b53e1b4a..28533e35b 100644
--- a/source/funkin/ui/transition/LoadingState.hx
+++ b/source/funkin/ui/transition/LoadingState.hx
@@ -326,15 +326,20 @@ class LoadingState extends MusicBeatSubState
// I will fix this properly later I swear -eric
if (!path.endsWith('.png')) continue;
- FunkinSprite.cacheTexture(path);
+ new Future(function() {
+ FunkinSprite.cacheTexture(path);
+ // Another dumb hack: FlxAnimate fetches from OpenFL's BitmapData cache directly and skips the FlxGraphic cache.
+ // Since FlxGraphic tells OpenFL to not cache it, we have to do it manually.
+ if (path.endsWith('spritemap1.png'))
+ {
+ trace('Preloading FlxAnimate asset: ${path}');
+ openfl.Assets.getBitmapData(path, true);
+ }
+ return 'Done precaching ${path}';
+ }, true);
- // Another dumb hack: FlxAnimate fetches from OpenFL's BitmapData cache directly and skips the FlxGraphic cache.
- // Since FlxGraphic tells OpenFL to not cache it, we have to do it manually.
- if (path.endsWith('spritemap1.png'))
- {
- trace('Preloading FlxAnimate asset: ${path}');
- openfl.Assets.getBitmapData(path, true);
- }
+ trace("Queued ${path} for precaching");
+ // FunkinSprite.cacheTexture(path);
}
// FunkinSprite.cacheAllNoteStyleTextures(noteStyle) // This will replace the stuff above!