diff --git a/source/Character.hx b/source/Character.hx index c99941c..542b8688 100644 --- a/source/Character.hx +++ b/source/Character.hx @@ -452,7 +452,7 @@ class Character extends FlxSprite /** * FOR GF DANCING SHIT */ - public function dance(forced:Bool = false) + public function dance(forced:Bool = false, altAnim:Bool = false) { if (!debugMode) { @@ -476,13 +476,25 @@ class Character extends FlxSprite else playAnim('danceLeft'); default: - playAnim('idle', forced); + if (altAnim && animation.getByName('idle-alt') != null) + playAnim('idle-alt', forced); + else + playAnim('idle', forced); } } } public function playAnim(AnimName:String, Force:Bool = false, Reversed:Bool = false, Frame:Int = 0):Void { + + if (AnimName.endsWith('alt') && animation.getByName(AnimName) == null) + { + #if debug + FlxG.log.warn(['Such alt animation doesnt exist: ' + AnimName]); + #end + AnimName = AnimName.split('-')[0]; + } + animation.play(AnimName, Force, Reversed, Frame); var daOffset = animOffsets.get(AnimName); diff --git a/source/ChartingState.hx b/source/ChartingState.hx index cb55627..8622d0f 100644 --- a/source/ChartingState.hx +++ b/source/ChartingState.hx @@ -301,7 +301,7 @@ class ChartingState extends MusicBeatState { var renderer = new SectionRender(0,640 * awfgaw,GRID_SIZE); if (_song.notes[awfgaw] == null) - _song.notes.push(newSection(16,true,false)); + _song.notes.push(newSection(16,true,false,false)); renderer.section = _song.notes[awfgaw]; sectionRenderes.add(renderer); @@ -1183,7 +1183,8 @@ class ChartingState extends MusicBeatState var check_mustHitSection:FlxUICheckBox; var check_changeBPM:FlxUICheckBox; var stepperSectionBPM:FlxUINumericStepper; - var check_altAnim:FlxUICheckBox; + var check_p1AltAnim:FlxUICheckBox; + var check_p2AltAnim:FlxUICheckBox; function addSectionUI():Void { @@ -1267,8 +1268,11 @@ class ChartingState extends MusicBeatState check_mustHitSection.checked = true; // _song.needsVoices = check_mustHit.checked; - check_altAnim = new FlxUICheckBox(10, 340, null, null, "Alternate Animation", 100); - check_altAnim.name = 'check_altAnim'; + check_p1AltAnim = new FlxUICheckBox(10, 340, null, null, "P1 Alternate Animation", 100); + check_p1AltAnim.name = 'check_p1AltAnim'; + + check_p2AltAnim = new FlxUICheckBox(200, 340, null, null, "P2 Alternate Animation", 100); + check_p2AltAnim.name = 'check_p2AltAnim'; var refresh = new FlxButton(10, 60, 'Refresh Section', function() { var section = getSectionByTime(Conductor.songPosition); @@ -1277,7 +1281,8 @@ class ChartingState extends MusicBeatState return; check_mustHitSection.checked = section.mustHitSection; - check_altAnim.checked = section.altAnim; + check_p1AltAnim.checked = section.p1AltAnim; + check_p2AltAnim.checked = section.p2AltAnim; }); var startSection:FlxButton = new FlxButton(10, 85, "Play Here", function() { @@ -1294,7 +1299,8 @@ class ChartingState extends MusicBeatState //tab_group_section.add(stepperCopy); //tab_group_section.add(stepperCopyLabel); tab_group_section.add(check_mustHitSection); - tab_group_section.add(check_altAnim); + tab_group_section.add(check_p1AltAnim); + tab_group_section.add(check_p2AltAnim); //tab_group_section.add(copyButton); tab_group_section.add(clearSectionButton); tab_group_section.add(swapSection); @@ -1511,8 +1517,10 @@ class ChartingState extends MusicBeatState var label = check.getLabel().text; switch (label) { - case "Alternate Animation": - getSectionByTime(Conductor.songPosition).altAnim = check.checked; + case "P1 Alternate Animation": + getSectionByTime(Conductor.songPosition).p1AltAnim = check.checked; + case "P2 Alternate Animation": + getSectionByTime(Conductor.songPosition).p2AltAnim = check.checked; } } else if (id == FlxUINumericStepper.CHANGE_EVENT && (sender is FlxUINumericStepper)) @@ -2073,7 +2081,8 @@ class ChartingState extends MusicBeatState { lastUpdatedSection = weird; check_mustHitSection.checked = weird.mustHitSection; - check_altAnim.checked = weird.altAnim; + check_p1AltAnim.checked = weird.p1AltAnim; + check_p2AltAnim.checked = weird.p2AltAnim; } } @@ -2547,13 +2556,14 @@ class ChartingState extends MusicBeatState if (sec == null) { check_mustHitSection.checked = true; - check_altAnim.checked = false; + check_p1AltAnim.checked = false; + check_p2AltAnim.checked = false; } else { check_mustHitSection.checked = sec.mustHitSection; - check_altAnim.checked = sec.altAnim; - check_changeBPM.checked = sec.changeBPM; + check_p1AltAnim.checked = sec.p1AltAnim; + check_p2AltAnim.checked = sec.p2AltAnim; } } @@ -2681,7 +2691,9 @@ class ChartingState extends MusicBeatState mustHitSection: true, sectionNotes: [], typeOfSection: 0, - altAnim: false + altAnim: false, + p1AltAnim: false, + p2AltAnim: false }; _song.notes.push(sec); @@ -2792,7 +2804,7 @@ class ChartingState extends MusicBeatState updateGrid(); } - private function newSection(lengthInSteps:Int = 16,mustHitSection:Bool = false,altAnim:Bool = true):SwagSection + private function newSection(lengthInSteps:Int = 16,mustHitSection:Bool = false,p1AltAnim:Bool = true, p2AltAnim:Bool = true):SwagSection { var daPos:Float = 0; @@ -2820,7 +2832,9 @@ class ChartingState extends MusicBeatState mustHitSection: mustHitSection, sectionNotes: [], typeOfSection: 0, - altAnim: altAnim + altAnim: false, + p1AltAnim: p1AltAnim, + p2AltAnim: p2AltAnim }; @@ -2894,7 +2908,7 @@ class ChartingState extends MusicBeatState } for (daSection1 in 0..._song.notes.length) { - newSong.push(newSection(16,_song.notes[daSection1].mustHitSection,_song.notes[daSection1].altAnim)); + newSong.push(newSection(16,_song.notes[daSection1].mustHitSection,_song.notes[daSection1].p1AltAnim,_song.notes[daSection1].p2AltAnim)); } for (daSection in 0...(_song.notes.length)) @@ -2902,7 +2916,8 @@ class ChartingState extends MusicBeatState var aimtosetsection = daSection+Std.int((totaladdsection)); if(aimtosetsection<0) aimtosetsection = 0; newSong[aimtosetsection].mustHitSection = _song.notes[daSection].mustHitSection; - newSong[aimtosetsection].altAnim = _song.notes[daSection].altAnim; + newSong[aimtosetsection].p1AltAnim = _song.notes[daSection].p1AltAnim; + newSong[aimtosetsection].p2AltAnim = _song.notes[daSection].p2AltAnim; //trace("section "+daSection); for(daNote in 0...(_song.notes[daSection].sectionNotes.length)) { @@ -3021,7 +3036,7 @@ class ChartingState extends MusicBeatState } else { - var note:Note = new Note(n.strumTime, n.noteData % 4,null,false,true); + var note:Note = new Note(n.strumTime, n.noteData % 4,null,false,true, n.isAlt); note.rawNoteData = n.noteData; note.sustainLength = noteSus; note.setGraphicSize(Math.floor(GRID_SIZE), Math.floor(GRID_SIZE)); diff --git a/source/Note.hx b/source/Note.hx index 659a7d6..e42b218 100644 --- a/source/Note.hx +++ b/source/Note.hx @@ -147,7 +147,9 @@ class Note extends FlxSprite animation.add(dataColor[i] + 'holdend', [i + 4]); // Tails } - setGraphicSize(Std.int(width * PlayState.daPixelZoom)); + var widthSize = Std.int(PlayState.curStage.startsWith('school') ? (width * PlayState.daPixelZoom) : (isSustainNote ? (width * (PlayState.daPixelZoom - 1.5)) : (width * PlayState.daPixelZoom))); + + setGraphicSize(widthSize); updateHitbox(); default: frames = Paths.getSparrowAtlas('NOTE_assets'); diff --git a/source/PlayState.hx b/source/PlayState.hx index d1a3138..6ec293a 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -3060,7 +3060,7 @@ class PlayState extends MusicBeatState if (SONG.notes[Math.floor(curStep / 16)] != null) { - if (SONG.notes[Math.floor(curStep / 16)].altAnim) + if (SONG.notes[Math.floor(curStep / 16)].p1AltAnim) altAnim = '-alt'; } @@ -4382,17 +4382,14 @@ 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 altAnim:String = ""; + if (note.isAlt) + { + altAnim = '-alt'; + trace("Alt note on BF"); + } + + boyfriend.playAnim('sing' + dataSuffix[note.noteData] + altAnim, true); #if windows if (luaModchart != null) @@ -4621,7 +4618,7 @@ class PlayState extends MusicBeatState // Dad doesnt interupt his own notes if ((!dad.animation.curAnim.name.startsWith("sing")) && dad.curCharacter != 'gf') if ((curBeat % idleBeat == 0 || !idleToBeat) || dad.curCharacter == "spooky") - dad.dance(idleToBeat); + dad.dance(idleToBeat, SONG.notes[Math.floor(curStep / 16)].p1AltAnim); } // FlxG.log.add('change bpm' + SONG.notes[Std.int(curStep / 16)].changeBPM); wiggleShit.update(Conductor.crochet); @@ -4655,7 +4652,7 @@ class PlayState extends MusicBeatState if (!boyfriend.animation.curAnim.name.startsWith("sing") && (curBeat % idleBeat == 0 || !idleToBeat)) { - boyfriend.playAnim('idle', idleToBeat); + boyfriend.playAnim('idle' + ((SONG.notes[Math.floor(curStep / 16)].p2AltAnim && boyfriend.animation.getByName('idle-alt') != null) ? '-alt' : ''), idleToBeat); } /*if (!dad.animation.curAnim.name.startsWith("sing")) diff --git a/source/Section.hx b/source/Section.hx index 48b1f14..cd17e25 100644 --- a/source/Section.hx +++ b/source/Section.hx @@ -11,6 +11,8 @@ typedef SwagSection = var bpm:Float; var changeBPM:Bool; var altAnim:Bool; + var p1AltAnim:Bool; + var p2AltAnim:Bool; } class Section diff --git a/source/Song.hx b/source/Song.hx index 36cd923..00292c7 100644 --- a/source/Song.hx +++ b/source/Song.hx @@ -125,7 +125,6 @@ class Song if (song.eventObjects == null) song.eventObjects = []; - for(i in song.eventObjects) { var name = Reflect.field(i,"name"); @@ -176,7 +175,11 @@ class Song // conversion stuff - + for (section in swagShit.notes) + { + if (section.altAnim) + section.p1AltAnim = section.altAnim; + } return swagShit; }