public LegacyNote(byte[] file, ref int nextByteIndex) { int nameLength = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; chordName = String.Join("", (from character in file.Skip(nextByteIndex).Take(nameLength) select((char)character).ToString()).ToArray()); nextByteIndex += nameLength; difficulty = file.Skip(nextByteIndex).Take(1).First(); nextByteIndex += 1; bitFlag = file.Skip(nextByteIndex).Take(1).First(); nextByteIndex += 1; position = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; length = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; flags = file.Skip(nextByteIndex).Take(4).ToArray(); nextByteIndex += 4; if (flags[0] == 2) { Debug.Log("STAR POWER !"); } }
public SongProperties(byte[] file) { numberOfIniStrings = EOFUtility.bytesToInt16(file.Skip(25).Take(2).ToArray()); nextByteindex += 2; if (numberOfIniStrings != 0) { // TODO : iniStrings data extraction // iniStrings = getIniStrings(file.Skip(25).Take(2).ToArray(), ref nextByteindex); } numberOfIniBoolean = EOFUtility.bytesToInt16(file.Skip(nextByteindex).Take(2).ToArray()); nextByteindex += 2; if (numberOfIniBoolean != 0) { // TODO : iniBooleans data extraction // iniBooleans = getIniBooleans(file.Skip(nextByteindex).Take(2).ToArray(), ref nextByteindex); } numberOfIniNumber = EOFUtility.bytesToInt16(file.Skip(nextByteindex).Take(2).ToArray()); nextByteindex += 2; if (numberOfIniNumber != 0) { iniNumbers = getIniNumbers(file, ref nextByteindex, numberOfIniNumber); } endByteIndex = nextByteindex; }
public OGGProfil(byte[] file, ref int nextByteIndex) { int nameLength = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; name = String.Join("", (from character in file.Skip(nextByteIndex).Take(nameLength) select((char)character).ToString()).ToArray()); nextByteIndex += nameLength; // Not used by EOF the moment, always 0 int filenameLength = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; int oggProfileDescriptionLength = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; description = String.Join("", (from character in file.Skip(nextByteIndex).Take(oggProfileDescriptionLength) select((char)character).ToString()).ToArray()); nextByteIndex += oggProfileDescriptionLength; delay = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; flags = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; }
public Track(byte[] file, ref int nextByteIndex) { int nameLength = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; name = String.Join("", (from character in file.Skip(nextByteIndex).Take(nameLength) select((char)character).ToString()).ToArray()); nextByteIndex += nameLength; format = file.Skip(nextByteIndex).Take(1).First(); nextByteIndex += 1; behavior = file.Skip(nextByteIndex).Take(1).First(); nextByteIndex += 1; type = file.Skip(nextByteIndex).Take(1).First(); nextByteIndex += 1; difficulty = file.Skip(nextByteIndex).Take(1).First(); nextByteIndex += 1; flags = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; int trackComplianceFlag = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; getTrackData(file, ref nextByteIndex); sections = getSections(file, ref nextByteIndex); getCustomDataBlocks(file, ref nextByteIndex); }
public IniString(byte[] file, ref int nextByteIndex) { nextByteIndex += 1; int nameLength = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; // string name = String.Join("", (from character in file.Skip(nextByteIndex).Take(nameLength) select ((char)character).ToString()).ToArray()); nextByteIndex += nameLength; }
string getTrackFormat(byte[] file, int startByteIndex) { int nameLength = EOFUtility.bytesToInt16(file.Skip(startByteIndex).Take(2).ToArray()); startByteIndex += 2; startByteIndex += nameLength; byte format = file.Skip(startByteIndex).Take(1).First(); startByteIndex += 1; return(Convert.ToString(format)); }
public Section(byte[] file, ref int nextByteIndex) { type = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; int numberOfSectionChunk = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; for (int i = 0; i < numberOfSectionChunk; i++) { sections.Add(new SectionChunk(file, ref nextByteIndex)); } }
protected List <Section> getSections(byte[] file, ref int nextByteIndex) { List <Section> sections = new List <Section>(); int numberOfSection = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; for (int i = 0; i < numberOfSection; i++) { sections.Add(new Section(file, ref nextByteIndex)); } return(sections); }
public TextEvent(byte[] file, ref int nextByteIndex) { int nameLength = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; description = String.Join("", (from character in file.Skip(nextByteIndex).Take(nameLength) select((char)character).ToString()).ToArray()); nextByteIndex += nameLength; beat = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; trackNumber = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; flags = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; }
public LegacyNote(byte[] file, ref int nextByteIndex) { int nameLength = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; chordName = String.Join("", (from character in file.Skip(nextByteIndex).Take(nameLength) select((char)character).ToString()).ToArray()); nextByteIndex += nameLength; difficulty = file.Skip(nextByteIndex).Take(1).First(); nextByteIndex += 1; bitFlag = file.Skip(nextByteIndex).Take(1).First(); var stringLanes = new string(Convert.ToString(bitFlag, 2).Reverse().ToArray()).PadRight(2, '0'); for (int i = 0; i < 2; i++) { if (stringLanes[i] == '0') { lanes[i] = false; } else { lanes[i] = true; } } nextByteIndex += 1; position = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; length = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; flags = file.Skip(nextByteIndex).Take(4).ToArray(); nextByteIndex += 4; if (flags[0] == 2) { // TODO : Use Star Power, maybe. } }
public ChartData(byte[] file, int startByteIndex) { nextByteIndex = startByteIndex; // OGG data extraction numberOfOGGProfiles = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; for (int i = 0; i < numberOfOGGProfiles; i++) { OGGProfiles.Add(new OGGProfil(file, ref nextByteIndex)); } // Beat data extraction numberOfBeats = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray());; nextByteIndex += 4; for (int i = 0; i < numberOfBeats; i++) { beats.Add(new Beat(file, ref nextByteIndex)); } // Text event data extraction numberOfTextEvents = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray());; nextByteIndex += 4; for (int i = 0; i < numberOfTextEvents; i++) { textEvents.Add(new TextEvent(file, ref nextByteIndex)); } // Custom data block extraction numberOfCustomDataBlock = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray());; nextByteIndex += 4; for (int i = 0; i < numberOfCustomDataBlock; i++) { customDataBlocks.Add(new CustomDataBlock(file, ref nextByteIndex)); } endByteIndex = nextByteIndex; }
public SectionChunk(byte[] file, ref int nextByteIndex) { int nameLength = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; name = String.Join("", (from character in file.Skip(nextByteIndex).Take(nameLength) select((char)character).ToString()).ToArray()); nextByteIndex += nameLength; difficulty = file.Skip(nextByteIndex).Take(1).First(); nextByteIndex += 1; startPosition = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; endPosition = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; flags = file.Skip(nextByteIndex).Take(4).ToArray(); nextByteIndex += 4; }
override protected void getTrackData(byte[] file, ref int nextByteIndex) { nextByteIndex += 1; byte numberOfStrings = file.Skip(nextByteIndex).Take(1).First(); nextByteIndex += 1; for (int i = 0; i < numberOfStrings; i++) { nextByteIndex += 1; } int numberOfNotes = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; for (int i = 0; i < numberOfNotes; i++) { int nameLength = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; nextByteIndex += nameLength; nextByteIndex += 1; // Chord number nextByteIndex += 1; // Difficulty nextByteIndex += 1; // Note bitflag Debug.Log(nextByteIndex); nextByteIndex += 1; // Ghost bitflag /* * for (int i = 0; i < bitInGhostBitflag; i++) { * * } */ nextByteIndex += 1; // Legacy bitflag nextByteIndex += 4; // Note position nextByteIndex += 4; // Note length nextByteIndex += 4; // Note flags } }
public LyricChunk(byte[] file, ref int nextByteIndex) { int nameLength = EOFUtility.bytesToInt16(file.Skip(nextByteIndex).Take(2).ToArray()); nextByteIndex += 2; name = String.Join("", (from character in file.Skip(nextByteIndex).Take(nameLength) select((char)character).ToString()).ToArray()); nextByteIndex += nameLength; lyricSet = file.Skip(nextByteIndex).Take(1).First(); nextByteIndex += 1; notePitch = file.Skip(nextByteIndex).Take(1).First(); nextByteIndex += 1; position = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; length = EOFUtility.bytesToInt32(file.Skip(nextByteIndex).Take(4).ToArray()); nextByteIndex += 4; flags = file.Skip(nextByteIndex).Take(2).ToArray(); nextByteIndex += 2; }