private static void FillHoldPath(ref char[][] output, int row, int col, MemoNote.Direction direction, int span) { var rowOffset = RowOffset[direction]; var colOffset = ColOffset[direction]; for (var i = 0; i < span; i++) { row -= rowOffset; col -= colOffset; Debug.Assert(!CircleNumberCharset.Contains(output[row][col])); output[row][col] = output[row][col] == DefaultEmpty ? DefulatPath[direction] : DefaultCross; } output[row][col] = DefaultArrow[direction]; }
private static void SetHoldNote(MemoScene scene, int row, int col, MemoNote.Direction direction) { var rowOffset = RowOffset[direction]; var colOffset = ColOffset[direction]; for (var span = 1;; span++) { row += rowOffset; col += colOffset; if (scene[row, col].Type == MemoNote.NoteType.Click) { scene[row, col] = new MemoNote { Type = MemoNote.NoteType.Hold, Ordinal = scene[row, col].Ordinal, HoldSpan = span, HoldDirection = direction }; break; } } }