diff --git a/art/flashFiles/NOTE_assets.fla b/art/flashFiles/NOTE_assets.fla
index 523cc95..d3e4f32 100644
Binary files a/art/flashFiles/NOTE_assets.fla and b/art/flashFiles/NOTE_assets.fla differ
diff --git a/assets/shared/images/NOTE_assets.png b/assets/shared/images/NOTE_assets.png
index 3259d0b..2b348a2 100644
Binary files a/assets/shared/images/NOTE_assets.png and b/assets/shared/images/NOTE_assets.png differ
diff --git a/assets/shared/images/NOTE_assets.xml b/assets/shared/images/NOTE_assets.xml
index 76224ce..d3e1257 100644
--- a/assets/shared/images/NOTE_assets.xml
+++ b/assets/shared/images/NOTE_assets.xml
@@ -1,45 +1,92 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/FreeplayState.hx b/source/FreeplayState.hx
index 7fe4b38..36ac10b 100644
--- a/source/FreeplayState.hx
+++ b/source/FreeplayState.hx
@@ -360,6 +360,16 @@ class FreeplayState extends MusicBeatState
FlxG.sound.playMusic(Paths.inst(songs[curSelected].songName), 0);
#end
+ var hmm;
+ try
+ {
+ hmm = songData.get(songs[curSelected].songName)[curDifficulty];
+ if (hmm != null)
+ Conductor.changeBPM(hmm.bpm);
+ }
+ catch(ex)
+ {}
+
var bullShit:Int = 0;
for (i in 0...iconArray.length)
diff --git a/source/Note.hx b/source/Note.hx
index d4c4a76..ae26fb3 100644
--- a/source/Note.hx
+++ b/source/Note.hx
@@ -38,6 +38,8 @@ class Note extends FlxSprite
public var rating:String = "shit";
+ public var dataColor:Array = ['purple', 'blue', 'green', 'red'];
+
public function new(strumTime:Float, noteData:Int, ?prevNote:Note, ?sustainNote:Bool = false, ?inCharter:Bool = false)
{
super();
@@ -73,26 +75,15 @@ class Note extends FlxSprite
switch (noteTypeCheck)
{
case 'pixel':
- loadGraphic(Paths.image('weeb/pixelUI/arrows-pixels','week6'), true, 17, 17);
-
- animation.add('greenScroll', [6]);
- animation.add('redScroll', [7]);
- animation.add('blueScroll', [5]);
- animation.add('purpleScroll', [4]);
-
+ loadGraphic(Paths.image('weeb/pixelUI/arrows-pixels', 'week6'), true, 17, 17);
if (isSustainNote)
+ loadGraphic(Paths.image('weeb/pixelUI/arrowEnds', 'week6'), true, 7, 6);
+
+ for (i in 0...4)
{
- loadGraphic(Paths.image('weeb/pixelUI/arrowEnds','week6'), true, 7, 6);
-
- animation.add('purpleholdend', [4]);
- animation.add('greenholdend', [6]);
- animation.add('redholdend', [7]);
- animation.add('blueholdend', [5]);
-
- animation.add('purplehold', [0]);
- animation.add('greenhold', [2]);
- animation.add('redhold', [3]);
- animation.add('bluehold', [1]);
+ animation.add(dataColor[i] + 'Scroll', [i + 4]); // Normal notes
+ animation.add(dataColor[i] + 'hold', [i]); // Holds
+ animation.add(dataColor[i] + 'holdend', [i + 4]); // Tails
}
setGraphicSize(Std.int(width * PlayState.daPixelZoom));
@@ -100,47 +91,27 @@ class Note extends FlxSprite
default:
frames = Paths.getSparrowAtlas('NOTE_assets');
- animation.addByPrefix('greenScroll', 'green0');
- animation.addByPrefix('redScroll', 'red0');
- animation.addByPrefix('blueScroll', 'blue0');
- animation.addByPrefix('purpleScroll', 'purple0');
-
- animation.addByPrefix('purpleholdend', 'pruple end hold');
- animation.addByPrefix('greenholdend', 'green hold end');
- animation.addByPrefix('redholdend', 'red hold end');
- animation.addByPrefix('blueholdend', 'blue hold end');
-
- animation.addByPrefix('purplehold', 'purple hold piece');
- animation.addByPrefix('greenhold', 'green hold piece');
- animation.addByPrefix('redhold', 'red hold piece');
- animation.addByPrefix('bluehold', 'blue hold piece');
+ for (i in 0...4)
+ {
+ animation.addByPrefix(dataColor[i] + 'Scroll', dataColor[i] + ' alone'); // Normal notes
+ animation.addByPrefix(dataColor[i] + 'hold', dataColor[i] + ' hold'); // Hold
+ animation.addByPrefix(dataColor[i] + 'holdend', dataColor[i] + ' tail'); // Tails
+ }
setGraphicSize(Std.int(width * 0.7));
updateHitbox();
antialiasing = true;
}
- switch (noteData)
- {
- case 0:
- x += swagWidth * 0;
- animation.play('purpleScroll');
- case 1:
- x += swagWidth * 1;
- animation.play('blueScroll');
- case 2:
- x += swagWidth * 2;
- animation.play('greenScroll');
- case 3:
- x += swagWidth * 3;
- animation.play('redScroll');
- }
+ x += swagWidth * noteData;
+ animation.play(dataColor[noteData] + 'Scroll');
// trace(prevNote);
// we make sure its downscroll and its a SUSTAIN NOTE (aka a trail, not a note)
// and flip it so it doesn't look weird.
// THIS DOESN'T FUCKING FLIP THE NOTE, CONTRIBUTERS DON'T JUST COMMENT THIS OUT JESUS
+ // then what is this lol
if (FlxG.save.data.downscroll && sustainNote)
flipY = true;
@@ -151,17 +122,7 @@ class Note extends FlxSprite
x += width / 2;
- switch (noteData)
- {
- case 2:
- animation.play('greenholdend');
- case 3:
- animation.play('redholdend');
- case 1:
- animation.play('blueholdend');
- case 0:
- animation.play('purpleholdend');
- }
+ animation.play(dataColor[noteData] + 'holdend');
updateHitbox();
@@ -172,18 +133,7 @@ class Note extends FlxSprite
if (prevNote.isSustainNote)
{
- switch (prevNote.noteData)
- {
- case 0:
- prevNote.animation.play('purplehold');
- case 1:
- prevNote.animation.play('bluehold');
- case 2:
- prevNote.animation.play('greenhold');
- case 3:
- prevNote.animation.play('redhold');
- }
-
+ prevNote.animation.play(dataColor[prevNote.noteData] + 'hold');
if(FlxG.save.data.scrollSpeed != 1)
prevNote.scale.y *= Conductor.stepCrochet / 100 * 1.5 * FlxG.save.data.scrollSpeed;
diff --git a/source/PlayState.hx b/source/PlayState.hx
index c2e0486..7314bb7 100644
--- a/source/PlayState.hx
+++ b/source/PlayState.hx
@@ -228,6 +228,9 @@ class PlayState extends MusicBeatState
private var executeModchart = false;
+ // Animation common suffixes
+ private var dataSuffix:Array = ['LEFT', 'DOWN', 'UP', 'RIGHT'];
+
// API stuff
public function addObject(object:FlxBasic) { add(object); }
@@ -2582,18 +2585,10 @@ class PlayState extends MusicBeatState
if (SONG.notes[Math.floor(curStep / 16)].altAnim)
altAnim = '-alt';
}
-
- switch (Math.abs(daNote.noteData))
- {
- case 2:
- dad.playAnim('singUP' + altAnim, true);
- case 3:
- dad.playAnim('singRIGHT' + altAnim, true);
- case 1:
- dad.playAnim('singDOWN' + altAnim, true);
- case 0:
- dad.playAnim('singLEFT' + altAnim, true);
- }
+
+ // Accessing the animation name directly to play it
+ var singData:Int = Std.int(Math.abs(daNote.noteData));
+ dad.playAnim('sing' + dataSuffix[singData] + altAnim, true);
if (FlxG.save.data.cpuStrums)
{
@@ -3530,17 +3525,8 @@ class PlayState extends MusicBeatState
// FlxG.sound.play(Paths.sound('missnote1'), 1, false);
// FlxG.log.add('played imss note');
- switch (direction)
- {
- case 0:
- boyfriend.playAnim('singLEFTmiss', true);
- case 1:
- boyfriend.playAnim('singDOWNmiss', true);
- case 2:
- boyfriend.playAnim('singUPmiss', true);
- case 3:
- boyfriend.playAnim('singRIGHTmiss', true);
- }
+ // Hole switch statement replaced with a single line :)
+ boyfriend.playAnim('sing' + dataSuffix[direction] + 'miss', true);
#if windows
if (luaModchart != null)
@@ -3688,19 +3674,9 @@ class PlayState extends MusicBeatState
}
else
totalNotesHit += 1;
-
-
- switch (note.noteData)
- {
- case 2:
- boyfriend.playAnim('singUP', true);
- case 3:
- boyfriend.playAnim('singRIGHT', true);
- case 1:
- boyfriend.playAnim('singDOWN', true);
- case 0:
- boyfriend.playAnim('singLEFT', true);
- }
+
+ var singData:Int = Std.int(note.noteData);
+ boyfriend.playAnim('sing' + dataSuffix[singData], true);
#if windows
if (luaModchart != null)
diff --git a/source/TitleState.hx b/source/TitleState.hx
index 922570c..dadc361 100644
--- a/source/TitleState.hx
+++ b/source/TitleState.hx
@@ -110,34 +110,6 @@ class TitleState extends MusicBeatState
function startIntro()
{
- if (!initialized)
- {
- var diamond:FlxGraphic = FlxGraphic.fromClass(GraphicTransTileDiamond);
- diamond.persist = true;
- diamond.destroyOnNoUse = false;
-
- FlxTransitionableState.defaultTransIn = new TransitionData(FADE, FlxColor.BLACK, 1, new FlxPoint(0, -1), {asset: diamond, width: 32, height: 32},
- new FlxRect(-200, -200, FlxG.width * 1.4, FlxG.height * 1.4));
- FlxTransitionableState.defaultTransOut = new TransitionData(FADE, FlxColor.BLACK, 0.7, new FlxPoint(0, 1),
- {asset: diamond, width: 32, height: 32}, new FlxRect(-200, -200, FlxG.width * 1.4, FlxG.height * 1.4));
-
- transIn = FlxTransitionableState.defaultTransIn;
- transOut = FlxTransitionableState.defaultTransOut;
-
- // HAD TO MODIFY SOME BACKEND SHIT
- // IF THIS PR IS HERE IF ITS ACCEPTED UR GOOD TO GO
- // https://github.com/HaxeFlixel/flixel-addons/pull/348
-
- // var music:FlxSound = new FlxSound();
- // music.loadStream(Paths.music('freakyMenu'));
- // FlxG.sound.list.add(music);
- // music.play();
- FlxG.sound.playMusic(Paths.music('freakyMenu'), 0);
-
- FlxG.sound.music.fadeIn(4, 0, 0.7);
- }
-
- Conductor.changeBPM(102);
persistentUpdate = true;
var bg:FlxSprite = new FlxSprite().makeGraphic(FlxG.width, FlxG.height, FlxColor.BLACK);
@@ -146,23 +118,17 @@ class TitleState extends MusicBeatState
// bg.updateHitbox();
add(bg);
+ logoBl = new FlxSprite(-150, 1500);
if(Main.watermarks) {
- logoBl = new FlxSprite(-150, 1500);
logoBl.frames = Paths.getSparrowAtlas('KadeEngineLogoBumpin');
- logoBl.antialiasing = true;
- logoBl.animation.addByPrefix('bump', 'logo bumpin', 24, false);
- logoBl.updateHitbox();
- // logoBl.screenCenter();
- // logoBl.color = FlxColor.BLACK;
} else {
- logoBl = new FlxSprite(-150, -100);
logoBl.frames = Paths.getSparrowAtlas('logoBumpin');
- logoBl.antialiasing = true;
- logoBl.animation.addByPrefix('bump', 'logo bumpin', 24, false);
- logoBl.updateHitbox();
- // logoBl.screenCenter();
- // logoBl.color = FlxColor.BLACK;
}
+ logoBl.antialiasing = true;
+ logoBl.animation.addByPrefix('bump', 'logo bumpin', 24, false);
+ logoBl.updateHitbox();
+ // logoBl.screenCenter();
+ // logoBl.color = FlxColor.BLACK;
gfDance = new FlxSprite(FlxG.width * 0.4, FlxG.height * 0.07);
gfDance.frames = Paths.getSparrowAtlas('gfDanceTitle');
@@ -218,8 +184,33 @@ class TitleState extends MusicBeatState
if (initialized)
skipIntro();
- else
+ else {
+ var diamond:FlxGraphic = FlxGraphic.fromClass(GraphicTransTileDiamond);
+ diamond.persist = true;
+ diamond.destroyOnNoUse = false;
+
+ FlxTransitionableState.defaultTransIn = new TransitionData(FADE, FlxColor.BLACK, 1, new FlxPoint(0, -1), {asset: diamond, width: 32, height: 32},
+ new FlxRect(-200, -200, FlxG.width * 1.4, FlxG.height * 1.4));
+ FlxTransitionableState.defaultTransOut = new TransitionData(FADE, FlxColor.BLACK, 0.7, new FlxPoint(0, 1),
+ {asset: diamond, width: 32, height: 32}, new FlxRect(-200, -200, FlxG.width * 1.4, FlxG.height * 1.4));
+
+ transIn = FlxTransitionableState.defaultTransIn;
+ transOut = FlxTransitionableState.defaultTransOut;
+
+ // HAD TO MODIFY SOME BACKEND SHIT
+ // IF THIS PR IS HERE IF ITS ACCEPTED UR GOOD TO GO
+ // https://github.com/HaxeFlixel/flixel-addons/pull/348
+
+ // var music:FlxSound = new FlxSound();
+ // music.loadStream(Paths.music('freakyMenu'));
+ // FlxG.sound.list.add(music);
+ // music.play();
+ FlxG.sound.playMusic(Paths.music('freakyMenu'), 0);
+
+ FlxG.sound.music.fadeIn(4, 0, 0.7);
+ Conductor.changeBPM(102);
initialized = true;
+ }
// credGroup.add(credTextShit);
}