Merge branch 'master' into fix-fixin-fixes

This commit is contained in:
Spel0 2021-08-14 04:25:34 +03:00
commit 048e167ca8
10 changed files with 127 additions and 67 deletions

View File

@ -1290,7 +1290,7 @@ class ChartingState extends MusicBeatState
FlxG.sound.music.stop(); FlxG.sound.music.stop();
if (!PlayState.isSM) if (!PlayState.isSM)
vocals.stop(); vocals.stop();
PlayState.startTime = lastUpdatedSection.startTime; PlayState.startTime = _song.notes[curSection].startTime;
LoadingState.loadAndSwitchState(new PlayState()); LoadingState.loadAndSwitchState(new PlayState());
}); });
@ -1842,6 +1842,7 @@ class ChartingState extends MusicBeatState
{ {
if (i.overlaps(selectBox) && !i.charterSelected) if (i.overlaps(selectBox) && !i.charterSelected)
{ {
trace("seleting " + i.strumTime);
selectNote(i, false); selectNote(i, false);
} }
} }
@ -2141,20 +2142,14 @@ class ChartingState extends MusicBeatState
if (playClaps) if (playClaps)
{ {
curRenderedNotes.forEach(function(note:Note) for(note in shownNotes)
{ {
if (FlxG.sound.music.playing) if (note.strumTime <= Conductor.songPosition && !claps.contains(note) && FlxG.sound.music.playing)
{ {
if (strumLine.overlaps(note)) claps.push(note);
{ FlxG.sound.play(Paths.sound('SNAP'));
if(!claps.contains(note))
{
claps.push(note);
FlxG.sound.play(Paths.sound('SNAP'));
}
}
} }
}); }
} }
/*curRenderedNotes.forEach(function(note:Note) { /*curRenderedNotes.forEach(function(note:Note) {
if (strumLine.overlaps(note) && strumLine.y == note.y) // yandere dev type shit if (strumLine.overlaps(note) && strumLine.y == note.y) // yandere dev type shit
@ -2240,7 +2235,7 @@ class ChartingState extends MusicBeatState
{ {
if (FlxG.keys.pressed.CONTROL) if (FlxG.keys.pressed.CONTROL)
{ {
selectNote(note); selectNote(note, false);
} }
else else
{ {
@ -2717,26 +2712,31 @@ class ChartingState extends MusicBeatState
selectedBoxes.members.remove(selectedBoxes.members[0]); selectedBoxes.members.remove(selectedBoxes.members[0]);
} }
for (i in getSectionByTime(note.strumTime).sectionNotes) for(sec in _song.notes)
{ {
if (i[0] == note.strumTime && i[1] == note.rawNoteData) swagNum = 0;
for(i in sec.sectionNotes)
{ {
curSelectedNote = getSectionByTime(note.strumTime).sectionNotes[swagNum]; if (i[0] == note.strumTime && i[1] == note.rawNoteData)
if (curSelectedNoteObject != null) {
curSelectedNoteObject.charterSelected = false; curSelectedNote = sec.sectionNotes[swagNum];
if (curSelectedNoteObject != null)
curSelectedNoteObject = note; curSelectedNoteObject.charterSelected = false;
if (!note.charterSelected)
{
var box = new ChartingBox(note.x,note.y,note);
box.connectedNoteData = i;
selectedBoxes.add(box);
curSelectedNoteObject.charterSelected = true;
}
}
swagNum += 1; curSelectedNoteObject = note;
if (!note.charterSelected)
{
var box = new ChartingBox(note.x,note.y,note);
box.connectedNoteData = i;
selectedBoxes.add(box);
note.charterSelected = true;
curSelectedNoteObject.charterSelected = true;
}
}
swagNum += 1;
}
} }
updateNoteUI(); updateNoteUI();
@ -2775,18 +2775,14 @@ class ChartingState extends MusicBeatState
if (note.sustainLength > 0) if (note.sustainLength > 0)
curRenderedSustains.remove(note.noteCharterObject); curRenderedSustains.remove(note.noteCharterObject);
if (note.charterSelected) for(i in 0...selectedBoxes.members.length)
{ {
note.charterSelected = false; var box = selectedBoxes.members[i];
for(i in 0...selectedBoxes.members.length) if (box.connectedNote == note)
{ {
var box = selectedBoxes.members[i]; selectedBoxes.members.remove(box);
if (box.connectedNote == note) box.destroy();
{ return;
selectedBoxes.members.remove(box);
box.destroy();
return;
}
} }
} }
} }

View File

@ -67,6 +67,7 @@ class FreeplayState extends MusicBeatState
override function create() override function create()
{ {
clean();
var initSonglist = CoolUtil.coolTextFile(Paths.txt('data/freeplaySonglist')); var initSonglist = CoolUtil.coolTextFile(Paths.txt('data/freeplaySonglist'));
//var diffList = ""; //var diffList = "";
@ -398,6 +399,7 @@ class FreeplayState extends MusicBeatState
PlayState.isSM = false; PlayState.isSM = false;
#end #end
LoadingState.loadAndSwitchState(new PlayState()); LoadingState.loadAndSwitchState(new PlayState());
clean();
} }
} }

View File

@ -1,3 +1,4 @@
import flixel.FlxG;
import flixel.math.FlxMath; import flixel.math.FlxMath;
class HelperFunctions class HelperFunctions

View File

@ -49,6 +49,7 @@ class MainMenuState extends MusicBeatState
override function create() override function create()
{ {
clean();
#if windows #if windows
// Updating Discord Rich Presence // Updating Discord Rich Presence
DiscordClient.changePresence("In the Menus", null); DiscordClient.changePresence("In the Menus", null);

View File

@ -1,5 +1,6 @@
package; package;
import flixel.FlxBasic;
#if windows #if windows
import Discord.DiscordClient; import Discord.DiscordClient;
#end #end
@ -22,6 +23,26 @@ class MusicBeatState extends FlxUIState
inline function get_controls():Controls inline function get_controls():Controls
return PlayerSettings.player1.controls; return PlayerSettings.player1.controls;
private var assets:Array<FlxBasic> = [];
override function add(Object:flixel.FlxBasic):flixel.FlxBasic
{
if (FlxG.save.data.optimize)
assets.push(Object);
return super.add(Object);
}
public function clean()
{
if (FlxG.save.data.optimize)
{
for(i in assets)
{
remove(i);
}
}
}
override function create() override function create()
{ {
TimingStruct.clearTimings(); TimingStruct.clearTimings();

View File

@ -86,6 +86,7 @@ class OptionsMenu extends MusicBeatState
var blackBorder:FlxSprite; var blackBorder:FlxSprite;
override function create() override function create()
{ {
clean();
instance = this; instance = this;
var menuBG:FlxSprite = new FlxSprite().loadGraphic(Paths.image("menuDesat")); var menuBG:FlxSprite = new FlxSprite().loadGraphic(Paths.image("menuDesat"));
@ -139,7 +140,9 @@ class OptionsMenu extends MusicBeatState
if (acceptInput) if (acceptInput)
{ {
if (controls.BACK && !isCat) if (controls.BACK && !isCat)
{
FlxG.switchState(new MainMenuState()); FlxG.switchState(new MainMenuState());
}
else if (controls.BACK) else if (controls.BACK)
{ {
isCat = false; isCat = false;

View File

@ -209,6 +209,7 @@ class PauseSubState extends MusicBeatSubstate
{ {
var daSelected:String = menuItems[curSelected]; var daSelected:String = menuItems[curSelected];
switch (daSelected) switch (daSelected)
{ {
case "Resume": case "Resume":
@ -221,6 +222,7 @@ class PauseSubState extends MusicBeatSubstate
PlayState.instance.remove(PlayState.instance.videoSprite); PlayState.instance.remove(PlayState.instance.videoSprite);
PlayState.instance.removedVideo = true; PlayState.instance.removedVideo = true;
} }
PlayState.instance.clean();
FlxG.resetState(); FlxG.resetState();
case "Exit to menu": case "Exit to menu":
PlayState.startTime = 0; PlayState.startTime = 0;
@ -247,6 +249,8 @@ class PauseSubState extends MusicBeatSubstate
if (FlxG.save.data.fpsCap > 290) if (FlxG.save.data.fpsCap > 290)
(cast (Lib.current.getChildAt(0), Main)).setFPSCap(290); (cast (Lib.current.getChildAt(0), Main)).setFPSCap(290);
PlayState.instance.clean();
if (PlayState.isStoryMode) if (PlayState.isStoryMode)
FlxG.switchState(new StoryMenuState()); FlxG.switchState(new StoryMenuState());
else else

View File

@ -1061,6 +1061,46 @@ class PlayState extends MusicBeatState
} }
} }
if (startTime != 0)
{
var toBeRemoved = [];
for(i in 0...notes.members.length)
{
var dunceNote:Note = notes.members[i];
if (dunceNote.strumTime - startTime <= 0)
toBeRemoved.push(dunceNote);
else
{
if (PlayStateChangeables.useDownscroll)
{
if (dunceNote.mustPress)
dunceNote.y = (playerStrums.members[Math.floor(Math.abs(dunceNote.noteData))].y
+ 0.45 * (startTime - dunceNote.strumTime) * FlxMath.roundDecimal(PlayStateChangeables.scrollSpeed == 1 ? SONG.speed : PlayStateChangeables.scrollSpeed,
2)) - dunceNote.noteYOff;
else
dunceNote.y = (strumLineNotes.members[Math.floor(Math.abs(dunceNote.noteData))].y
+ 0.45 * (startTime - dunceNote.strumTime) * FlxMath.roundDecimal(PlayStateChangeables.scrollSpeed == 1 ? SONG.speed : PlayStateChangeables.scrollSpeed,
2)) - dunceNote.noteYOff;
}
else
{
if (dunceNote.mustPress)
dunceNote.y = (playerStrums.members[Math.floor(Math.abs(dunceNote.noteData))].y
- 0.45 * (startTime - dunceNote.strumTime) * FlxMath.roundDecimal(PlayStateChangeables.scrollSpeed == 1 ? SONG.speed : PlayStateChangeables.scrollSpeed,
2)) + dunceNote.noteYOff;
else
dunceNote.y = (strumLineNotes.members[Math.floor(Math.abs(dunceNote.noteData))].y
- 0.45 * (startTime - dunceNote.strumTime) * FlxMath.roundDecimal(PlayStateChangeables.scrollSpeed == 1 ? SONG.speed : PlayStateChangeables.scrollSpeed,
2)) + dunceNote.noteYOff;
}
}
}
for(i in toBeRemoved)
notes.members.remove(i);
}
trace('generated'); trace('generated');
// add(strumLine); // add(strumLine);
@ -1362,34 +1402,7 @@ class PlayState extends MusicBeatState
//generateStaticArrows(0); //generateStaticArrows(0);
//generateStaticArrows(1); //generateStaticArrows(1);
if (startTime != 0)
{
var toBeRemoved = [];
for(i in 0...unspawnNotes.length)
{
var dunceNote:Note = unspawnNotes[i];
if (dunceNote.strumTime - startTime <= 0)
toBeRemoved.push(dunceNote);
else if (dunceNote.strumTime - startTime < 3500)
{
notes.add(dunceNote);
if (dunceNote.mustPress)
dunceNote.y = (playerStrums.members[Math.floor(Math.abs(dunceNote.noteData))].y
+ 0.45 * (startTime - dunceNote.strumTime) * FlxMath.roundDecimal(PlayStateChangeables.scrollSpeed == 1 ? SONG.speed : PlayStateChangeables.scrollSpeed,
2)) - dunceNote.noteYOff;
else
dunceNote.y = (strumLineNotes.members[Math.floor(Math.abs(dunceNote.noteData))].y
+ 0.45 * (startTime - dunceNote.strumTime) * FlxMath.roundDecimal(PlayStateChangeables.scrollSpeed == 1 ? SONG.speed : PlayStateChangeables.scrollSpeed,
2)) - dunceNote.noteYOff;
toBeRemoved.push(dunceNote);
}
}
for(i in toBeRemoved)
unspawnNotes.remove(i);
}
#if windows #if windows
// pre lowercasing the song name (startCountdown) // pre lowercasing the song name (startCountdown)
@ -2430,6 +2443,7 @@ class PlayState extends MusicBeatState
{ {
trace('GITAROO MAN EASTER EGG'); trace('GITAROO MAN EASTER EGG');
FlxG.switchState(new GitarooPause()); FlxG.switchState(new GitarooPause());
clean();
} }
else else
openSubState(new PauseSubState(boyfriend.getScreenPosition().x, boyfriend.getScreenPosition().y)); openSubState(new PauseSubState(boyfriend.getScreenPosition().x, boyfriend.getScreenPosition().y));
@ -2451,7 +2465,9 @@ class PlayState extends MusicBeatState
#if windows #if windows
DiscordClient.changePresence("Chart Editor", null, null, true); DiscordClient.changePresence("Chart Editor", null, null, true);
#end #end
FlxG.switchState(new ChartingState()); FlxG.switchState(new ChartingState());
clean();
FlxG.stage.removeEventListener(KeyboardEvent.KEY_DOWN, handleInput); FlxG.stage.removeEventListener(KeyboardEvent.KEY_DOWN, handleInput);
FlxG.stage.removeEventListener(KeyboardEvent.KEY_UP, releaseInput); FlxG.stage.removeEventListener(KeyboardEvent.KEY_UP, releaseInput);
#if windows #if windows
@ -2505,6 +2521,7 @@ class PlayState extends MusicBeatState
} }
FlxG.switchState(new AnimationDebug(SONG.player2)); FlxG.switchState(new AnimationDebug(SONG.player2));
clean();
FlxG.stage.removeEventListener(KeyboardEvent.KEY_DOWN, handleInput); FlxG.stage.removeEventListener(KeyboardEvent.KEY_DOWN, handleInput);
FlxG.stage.removeEventListener(KeyboardEvent.KEY_UP, releaseInput); FlxG.stage.removeEventListener(KeyboardEvent.KEY_UP, releaseInput);
#if windows #if windows
@ -2519,6 +2536,7 @@ class PlayState extends MusicBeatState
if (FlxG.keys.justPressed.ZERO) if (FlxG.keys.justPressed.ZERO)
{ {
FlxG.switchState(new AnimationDebug(SONG.player1)); FlxG.switchState(new AnimationDebug(SONG.player1));
clean();
FlxG.stage.removeEventListener(KeyboardEvent.KEY_DOWN, handleInput); FlxG.stage.removeEventListener(KeyboardEvent.KEY_DOWN, handleInput);
FlxG.stage.removeEventListener(KeyboardEvent.KEY_UP, releaseInput); FlxG.stage.removeEventListener(KeyboardEvent.KEY_UP, releaseInput);
#if windows #if windows
@ -3379,6 +3397,7 @@ class PlayState extends MusicBeatState
FlxG.sound.playMusic(Paths.music('freakyMenu')); FlxG.sound.playMusic(Paths.music('freakyMenu'));
offsetTesting = false; offsetTesting = false;
LoadingState.loadAndSwitchState(new OptionsMenu()); LoadingState.loadAndSwitchState(new OptionsMenu());
clean();
FlxG.save.data.offset = offsetTest; FlxG.save.data.offset = offsetTest;
} }
else else
@ -3416,6 +3435,7 @@ class PlayState extends MusicBeatState
FlxG.sound.playMusic(Paths.music('freakyMenu')); FlxG.sound.playMusic(Paths.music('freakyMenu'));
Conductor.changeBPM(102); Conductor.changeBPM(102);
FlxG.switchState(new StoryMenuState()); FlxG.switchState(new StoryMenuState());
clean();
} }
#if windows #if windows
@ -3470,6 +3490,7 @@ class PlayState extends MusicBeatState
FlxG.sound.music.stop(); FlxG.sound.music.stop();
LoadingState.loadAndSwitchState(new PlayState()); LoadingState.loadAndSwitchState(new PlayState());
clean();
} }
} }
else else
@ -3490,7 +3511,10 @@ class PlayState extends MusicBeatState
}); });
} }
else else
{
FlxG.switchState(new FreeplayState()); FlxG.switchState(new FreeplayState());
clean();
}
} }
} }
} }

View File

@ -218,6 +218,7 @@ class ResultsScreen extends FlxSubState
} }
else else
FlxG.switchState(new FreeplayState()); FlxG.switchState(new FreeplayState());
PlayState.instance.clean();
} }
if (FlxG.keys.justPressed.F1 && !PlayState.loadRep) if (FlxG.keys.justPressed.F1 && !PlayState.loadRep)
@ -288,6 +289,7 @@ class ResultsScreen extends FlxSubState
PlayState.isStoryMode = false; PlayState.isStoryMode = false;
PlayState.storyDifficulty = PlayState.rep.replay.songDiff; PlayState.storyDifficulty = PlayState.rep.replay.songDiff;
LoadingState.loadAndSwitchState(new PlayState()); LoadingState.loadAndSwitchState(new PlayState());
PlayState.instance.clean();
} }
if (FlxG.keys.justPressed.F2 && !PlayState.loadRep) if (FlxG.keys.justPressed.F2 && !PlayState.loadRep)
@ -324,6 +326,7 @@ class ResultsScreen extends FlxSubState
PlayState.isStoryMode = false; PlayState.isStoryMode = false;
PlayState.storyDifficulty = PlayState.storyDifficulty; PlayState.storyDifficulty = PlayState.storyDifficulty;
LoadingState.loadAndSwitchState(new PlayState()); LoadingState.loadAndSwitchState(new PlayState());
PlayState.instance.clean();
} }
super.update(elapsed); super.update(elapsed);

View File

@ -99,8 +99,10 @@ class TitleState extends MusicBeatState
#if FREEPLAY #if FREEPLAY
FlxG.switchState(new FreeplayState()); FlxG.switchState(new FreeplayState());
clean();
#elseif CHARTING #elseif CHARTING
FlxG.switchState(new ChartingState()); FlxG.switchState(new ChartingState());
clean();
#else #else
#if !cpp #if !cpp
new FlxTimer().start(1, function(tmr:FlxTimer) new FlxTimer().start(1, function(tmr:FlxTimer)
@ -305,16 +307,19 @@ class TitleState extends MusicBeatState
OutdatedSubState.needVer = returnedData[0]; OutdatedSubState.needVer = returnedData[0];
OutdatedSubState.currChanges = returnedData[1]; OutdatedSubState.currChanges = returnedData[1];
FlxG.switchState(new OutdatedSubState()); FlxG.switchState(new OutdatedSubState());
clean();
} }
else else
{ {
FlxG.switchState(new MainMenuState()); FlxG.switchState(new MainMenuState());
clean();
} }
} }
http.onError = function (error) { http.onError = function (error) {
trace('error: $error'); trace('error: $error');
FlxG.switchState(new MainMenuState()); // fail but we go anyway FlxG.switchState(new MainMenuState()); // fail but we go anyway
clean();
} }
http.request(); http.request();