mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2024-11-14 19:25:16 -05:00
Chart Editor: Several bug fixes (#139)
* Fix a crash bug caused by unhandled null value. * Fix bug where note preview wouldn't update on song load * Fix note preview not updating when loading inst, fixed BF health icon positioning
This commit is contained in:
parent
cb81371b4a
commit
3828179218
3 changed files with 16 additions and 6 deletions
|
@ -833,6 +833,9 @@ class ChartEditorDialogHandler
|
||||||
songChartDataVariation = SongValidator.validateSongChartData(songChartDataVariation, 'import');
|
songChartDataVariation = SongValidator.validateSongChartData(songChartDataVariation, 'import');
|
||||||
|
|
||||||
songChartData.set(variation, songChartDataVariation);
|
songChartData.set(variation, songChartDataVariation);
|
||||||
|
state.notePreviewDirty = true;
|
||||||
|
state.notePreviewViewportBoundsDirty = true;
|
||||||
|
state.noteDisplayDirty = true;
|
||||||
|
|
||||||
// Tell the user the load was successful.
|
// Tell the user the load was successful.
|
||||||
NotificationManager.instance.addNotification(
|
NotificationManager.instance.addNotification(
|
||||||
|
@ -858,6 +861,9 @@ class ChartEditorDialogHandler
|
||||||
songChartDataVariation = SongValidator.validateSongChartData(songChartDataVariation, 'import');
|
songChartDataVariation = SongValidator.validateSongChartData(songChartDataVariation, 'import');
|
||||||
|
|
||||||
songChartData.set(variation, songChartDataVariation);
|
songChartData.set(variation, songChartDataVariation);
|
||||||
|
state.notePreviewDirty = true;
|
||||||
|
state.notePreviewViewportBoundsDirty = true;
|
||||||
|
state.noteDisplayDirty = true;
|
||||||
|
|
||||||
// Tell the user the load was successful.
|
// Tell the user the load was successful.
|
||||||
NotificationManager.instance.addNotification(
|
NotificationManager.instance.addNotification(
|
||||||
|
|
|
@ -132,6 +132,8 @@ class ChartEditorNoteSprite extends FlxSprite
|
||||||
|
|
||||||
public function updateNotePosition(?origin:FlxObject)
|
public function updateNotePosition(?origin:FlxObject)
|
||||||
{
|
{
|
||||||
|
if (this.noteData == null) return;
|
||||||
|
|
||||||
var cursorColumn:Int = this.noteData.data;
|
var cursorColumn:Int = this.noteData.data;
|
||||||
|
|
||||||
if (cursorColumn < 0) cursorColumn = 0;
|
if (cursorColumn < 0) cursorColumn = 0;
|
||||||
|
|
|
@ -569,7 +569,6 @@ class ChartEditorState extends HaxeUIState
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether the note preview graphic needs to be FULLY rebuilt.
|
* Whether the note preview graphic needs to be FULLY rebuilt.
|
||||||
* The Bitmap can be modified by individual commands without using this.
|
|
||||||
*/
|
*/
|
||||||
var notePreviewDirty:Bool = true;
|
var notePreviewDirty:Bool = true;
|
||||||
|
|
||||||
|
@ -1317,7 +1316,7 @@ class ChartEditorState extends HaxeUIState
|
||||||
healthIconBF = new HealthIcon(currentSongCharacterPlayer);
|
healthIconBF = new HealthIcon(currentSongCharacterPlayer);
|
||||||
healthIconBF.autoUpdate = false;
|
healthIconBF.autoUpdate = false;
|
||||||
healthIconBF.size.set(0.5, 0.5);
|
healthIconBF.size.set(0.5, 0.5);
|
||||||
healthIconBF.x = gridTiledSprite.x + GRID_SIZE * (STRUMLINE_SIZE * 2 + 1) + 15;
|
healthIconBF.x = gridTiledSprite.x + gridTiledSprite.width + 15;
|
||||||
healthIconBF.y = gridTiledSprite.y + 5;
|
healthIconBF.y = gridTiledSprite.y + 5;
|
||||||
healthIconBF.flipX = true;
|
healthIconBF.flipX = true;
|
||||||
add(healthIconBF);
|
add(healthIconBF);
|
||||||
|
@ -1797,7 +1796,7 @@ class ChartEditorState extends HaxeUIState
|
||||||
if (healthIconBF != null)
|
if (healthIconBF != null)
|
||||||
{
|
{
|
||||||
// Base X position to the right of the grid.
|
// Base X position to the right of the grid.
|
||||||
var baseHealthIconXPos:Float = gridTiledSprite?.x ?? 0.0 + GRID_SIZE * (STRUMLINE_SIZE * 2 + 1) + 15;
|
var baseHealthIconXPos:Float = (gridTiledSprite == null) ? (0) : (gridTiledSprite.x + gridTiledSprite.width + 15);
|
||||||
// Will be 0 when not bopping. When bopping, will increase to push the icon left.
|
// Will be 0 when not bopping. When bopping, will increase to push the icon left.
|
||||||
var healthIconOffset:Float = healthIconBF.width - (HealthIcon.HEALTH_ICON_SIZE * 0.5);
|
var healthIconOffset:Float = healthIconBF.width - (HealthIcon.HEALTH_ICON_SIZE * 0.5);
|
||||||
healthIconBF.x = baseHealthIconXPos - healthIconOffset;
|
healthIconBF.x = baseHealthIconXPos - healthIconOffset;
|
||||||
|
@ -2718,12 +2717,12 @@ class ChartEditorState extends HaxeUIState
|
||||||
trace('Creating new Note... (${renderedNotes.members.length})');
|
trace('Creating new Note... (${renderedNotes.members.length})');
|
||||||
noteSprite.parentState = this;
|
noteSprite.parentState = this;
|
||||||
|
|
||||||
// Setting note data resets position relative to the grid so we fix that.
|
|
||||||
noteSprite.updateNotePosition(renderedNotes);
|
|
||||||
|
|
||||||
// The note sprite handles animation playback and positioning.
|
// The note sprite handles animation playback and positioning.
|
||||||
noteSprite.noteData = noteData;
|
noteSprite.noteData = noteData;
|
||||||
|
|
||||||
|
// Setting note data resets position relative to the grid so we fix that.
|
||||||
|
noteSprite.updateNotePosition(renderedNotes);
|
||||||
|
|
||||||
// Add hold notes that are now visible (and not already displayed).
|
// Add hold notes that are now visible (and not already displayed).
|
||||||
if (noteSprite.noteData != null && noteSprite.noteData.length > 0 && displayedHoldNoteData.indexOf(noteSprite.noteData) == -1)
|
if (noteSprite.noteData != null && noteSprite.noteData.length > 0 && displayedHoldNoteData.indexOf(noteSprite.noteData) == -1)
|
||||||
{
|
{
|
||||||
|
@ -3869,6 +3868,9 @@ class ChartEditorState extends HaxeUIState
|
||||||
|
|
||||||
scrollPositionInPixels = 0;
|
scrollPositionInPixels = 0;
|
||||||
playheadPositionInPixels = 0;
|
playheadPositionInPixels = 0;
|
||||||
|
notePreviewDirty = true;
|
||||||
|
notePreviewViewportBoundsDirty = true;
|
||||||
|
noteDisplayDirty = true;
|
||||||
moveSongToScrollPosition();
|
moveSongToScrollPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue