public void readCUS(string cusPath) { charSkillSet[] css = new charSkillSet[1]; skill[] Super = new skill[1]; skill[] Ultimate = new skill[1]; skill[] Evasive = new skill[1]; skill[] blast = new skill[1]; skill[] Awaken = new skill[1]; CUS.Read(cusPath, ref css, ref Super, ref Ultimate, ref Evasive, ref Awaken, ref blast); this.css.AddRange((IEnumerable <charSkillSet>)css); this.Super.AddRange((IEnumerable <skill>)Super); this.Ultimate.AddRange((IEnumerable <skill>)Ultimate); this.Evasive.AddRange((IEnumerable <skill>)Evasive); this.blast.AddRange((IEnumerable <skill>)blast); this.Awaken.AddRange((IEnumerable <skill>)Awaken); }
public void writeCUS(string cusPath) { charSkillSet[] charSkillSetArray = new charSkillSet[1]; skill[] skillArray1 = new skill[1]; skill[] skillArray2 = new skill[1]; skill[] skillArray3 = new skill[1]; skill[] skillArray4 = new skill[1]; skill[] skillArray5 = new skill[1]; charSkillSet[] array1 = this.css.ToArray(); skill[] array2 = this.Super.ToArray(); skill[] array3 = this.Ultimate.ToArray(); skill[] array4 = this.Evasive.ToArray(); skill[] array5 = this.blast.ToArray(); skill[] array6 = this.Awaken.ToArray(); CUS.Write(cusPath, ref array1, ref array2, ref array3, ref array4, ref array6, ref array5); }
public static void writeSkill(ref BinaryWriter bw, skill s, ref int[] wordAddress, ref List <string> CmnText) { bw.Write(Encoding.ASCII.GetBytes(s.shortName)); if (s.shortName.Length == 3) { bw.BaseStream.Seek(5, SeekOrigin.Current); } else { bw.BaseStream.Seek(4, SeekOrigin.Current); } bw.Write(s.id); bw.Write(s.id2); bw.Write(s.racelock); bw.Write(s.unk1); bw.Write(s.unk2); bw.Write(s.hair); bw.Write(s.unk3); for (int k = 0; k < s.Paths.Length; k++) { if (s.Paths[k] == "") { bw.Write((int)0); } else { bw.Write(wordAddress[CmnText.IndexOf(s.Paths[k])]); } } bw.BaseStream.Seek(2, SeekOrigin.Current); bw.Write(s.unk4); bw.Write(s.unk5); bw.Write(s.unk6); bw.Write(s.unk7); bw.Write(s.unk8); bw.Write(s.unk9); bw.Write(s.unk10); bw.Write(s.unk11); }
public static void ReadSkills(string path, ref skill[] Super, ref skill[] Ultimate, ref skill[] Evasive, ref skill[] Awaken, ref skill[] blast) { BinaryReader br = new BinaryReader(File.Open(path, FileMode.Open)); br.BaseStream.Seek(16, SeekOrigin.Begin); int supCount = br.ReadInt32(); //super int ultCount = br.ReadInt32(); //ultimate int evaCount = br.ReadInt32(); //evasive int unkCount = br.ReadInt32(); //unknown int blaCount = br.ReadInt32(); //blast int awaCount = br.ReadInt32(); //awaken int supAddress = br.ReadInt32(); int ultAddress = br.ReadInt32(); int evaAddress = br.ReadInt32(); int unkAddress = br.ReadInt32(); int blaAddress = br.ReadInt32(); int awaAddress = br.ReadInt32(); Super = new skill[supCount]; Ultimate = new skill[ultCount]; Evasive = new skill[evaCount]; //unknown = new skill[unkCount]; blast = new skill[blaCount]; Awaken = new skill[awaCount]; for (int i = 0; i < supCount; i++) { br.BaseStream.Seek(supAddress + (i * 68), SeekOrigin.Begin); byte[] b = br.ReadBytes(4); Super[i].shortName = Encoding.ASCII.GetString(b); br.BaseStream.Seek(4, SeekOrigin.Current); Super[i].id = br.ReadInt16(); Super[i].id2 = br.ReadInt16(); Super[i].racelock = br.ReadByte(); Super[i].unk1 = br.ReadByte(); Super[i].unk2 = br.ReadInt16(); Super[i].hair = br.ReadInt16(); Super[i].unk3 = br.ReadInt16(); //20 Super[i].Paths = new string[7]; Super[i].Paths[0] = Helper.ReadAddressText(br, br.ReadInt32()); Super[i].Paths[1] = Helper.ReadAddressText(br, br.ReadInt32()); Super[i].Paths[2] = Helper.ReadAddressText(br, br.ReadInt32()); Super[i].Paths[3] = Helper.ReadAddressText(br, br.ReadInt32()); Super[i].Paths[4] = Helper.ReadAddressText(br, br.ReadInt32()); Super[i].Paths[5] = Helper.ReadAddressText(br, br.ReadInt32()); Super[i].Paths[6] = Helper.ReadAddressText(br, br.ReadInt32()); //28 br.BaseStream.Seek(2, SeekOrigin.Current); Super[i].unk4 = br.ReadInt16(); Super[i].unk5 = br.ReadInt16(); Super[i].unk6 = br.ReadInt16(); Super[i].unk7 = br.ReadInt16(); Super[i].unk8 = br.ReadInt16(); Super[i].unk9 = br.ReadInt16(); Super[i].unk10 = br.ReadInt16(); Super[i].unk11 = br.ReadInt32(); //20 } for (int i = 0; i < ultCount; i++) { br.BaseStream.Seek(ultAddress + (i * 68), SeekOrigin.Begin); byte[] b = br.ReadBytes(4); Ultimate[i].shortName = Encoding.ASCII.GetString(b); br.BaseStream.Seek(4, SeekOrigin.Current); Ultimate[i].id = br.ReadInt16(); Ultimate[i].id2 = br.ReadInt16(); Ultimate[i].racelock = br.ReadByte(); Ultimate[i].unk1 = br.ReadByte(); Ultimate[i].unk2 = br.ReadInt16(); Ultimate[i].hair = br.ReadInt16(); Ultimate[i].unk3 = br.ReadInt16(); Ultimate[i].Paths = new string[7]; Ultimate[i].Paths[0] = Helper.ReadAddressText(br, br.ReadInt32()); Ultimate[i].Paths[1] = Helper.ReadAddressText(br, br.ReadInt32()); Ultimate[i].Paths[2] = Helper.ReadAddressText(br, br.ReadInt32()); Ultimate[i].Paths[3] = Helper.ReadAddressText(br, br.ReadInt32()); Ultimate[i].Paths[4] = Helper.ReadAddressText(br, br.ReadInt32()); Ultimate[i].Paths[5] = Helper.ReadAddressText(br, br.ReadInt32()); Ultimate[i].Paths[6] = Helper.ReadAddressText(br, br.ReadInt32()); //28 br.BaseStream.Seek(2, SeekOrigin.Current); Ultimate[i].unk4 = br.ReadInt16(); Ultimate[i].unk5 = br.ReadInt16(); Ultimate[i].unk6 = br.ReadInt16(); Ultimate[i].unk7 = br.ReadInt16(); Ultimate[i].unk8 = br.ReadInt16(); Ultimate[i].unk9 = br.ReadInt16(); Ultimate[i].unk10 = br.ReadInt16(); Ultimate[i].unk11 = br.ReadInt32(); //20 } for (int i = 0; i < evaCount; i++) { br.BaseStream.Seek(evaAddress + (i * 68), SeekOrigin.Begin); byte[] b = br.ReadBytes(4); Evasive[i].shortName = Encoding.ASCII.GetString(b); br.BaseStream.Seek(4, SeekOrigin.Current); Evasive[i].id = br.ReadInt16(); Evasive[i].id2 = br.ReadInt16(); Evasive[i].racelock = br.ReadByte(); Evasive[i].unk1 = br.ReadByte(); Evasive[i].unk2 = br.ReadInt16(); Evasive[i].hair = br.ReadInt16(); Evasive[i].unk3 = br.ReadInt16(); Evasive[i].Paths = new string[7]; Evasive[i].Paths[0] = Helper.ReadAddressText(br, br.ReadInt32()); Evasive[i].Paths[1] = Helper.ReadAddressText(br, br.ReadInt32()); Evasive[i].Paths[2] = Helper.ReadAddressText(br, br.ReadInt32()); Evasive[i].Paths[3] = Helper.ReadAddressText(br, br.ReadInt32()); Evasive[i].Paths[4] = Helper.ReadAddressText(br, br.ReadInt32()); Evasive[i].Paths[5] = Helper.ReadAddressText(br, br.ReadInt32()); Evasive[i].Paths[6] = Helper.ReadAddressText(br, br.ReadInt32()); //28 br.BaseStream.Seek(2, SeekOrigin.Current); Evasive[i].unk4 = br.ReadInt16(); Evasive[i].unk5 = br.ReadInt16(); Evasive[i].unk6 = br.ReadInt16(); Evasive[i].unk7 = br.ReadInt16(); Evasive[i].unk8 = br.ReadInt16(); Evasive[i].unk9 = br.ReadInt16(); Evasive[i].unk10 = br.ReadInt16(); Evasive[i].unk11 = br.ReadInt32(); //20 } for (int i = 0; i < blaCount; i++) { br.BaseStream.Seek(blaAddress + (i * 68), SeekOrigin.Begin); byte[] b = br.ReadBytes(4); blast[i].shortName = Encoding.ASCII.GetString(b); br.BaseStream.Seek(4, SeekOrigin.Current); blast[i].id = br.ReadInt16(); blast[i].id2 = br.ReadInt16(); blast[i].racelock = br.ReadByte(); blast[i].unk1 = br.ReadByte(); blast[i].unk2 = br.ReadInt16(); blast[i].hair = br.ReadInt16(); blast[i].unk3 = br.ReadInt16(); blast[i].Paths = new string[7]; blast[i].Paths[0] = Helper.ReadAddressText(br, br.ReadInt32()); blast[i].Paths[1] = Helper.ReadAddressText(br, br.ReadInt32()); blast[i].Paths[2] = Helper.ReadAddressText(br, br.ReadInt32()); blast[i].Paths[3] = Helper.ReadAddressText(br, br.ReadInt32()); blast[i].Paths[4] = Helper.ReadAddressText(br, br.ReadInt32()); blast[i].Paths[5] = Helper.ReadAddressText(br, br.ReadInt32()); blast[i].Paths[6] = Helper.ReadAddressText(br, br.ReadInt32()); //28 br.BaseStream.Seek(2, SeekOrigin.Current); blast[i].unk4 = br.ReadInt16(); blast[i].unk5 = br.ReadInt16(); blast[i].unk6 = br.ReadInt16(); blast[i].unk7 = br.ReadInt16(); blast[i].unk8 = br.ReadInt16(); blast[i].unk9 = br.ReadInt16(); blast[i].unk10 = br.ReadInt16(); blast[i].unk11 = br.ReadInt32(); //20 } for (int i = 0; i < awaCount; i++) { br.BaseStream.Seek(awaAddress + (i * 68), SeekOrigin.Begin); byte[] b = br.ReadBytes(4); Awaken[i].shortName = Encoding.ASCII.GetString(b); br.BaseStream.Seek(4, SeekOrigin.Current); Awaken[i].id = br.ReadInt16(); Awaken[i].id2 = br.ReadInt16(); Awaken[i].racelock = br.ReadByte(); Awaken[i].unk1 = br.ReadByte(); Awaken[i].unk2 = br.ReadInt16(); Awaken[i].hair = br.ReadInt16(); Awaken[i].unk3 = br.ReadInt16(); Awaken[i].Paths = new string[7]; Awaken[i].Paths[0] = Helper.ReadAddressText(br, br.ReadInt32()); Awaken[i].Paths[1] = Helper.ReadAddressText(br, br.ReadInt32()); Awaken[i].Paths[2] = Helper.ReadAddressText(br, br.ReadInt32()); Awaken[i].Paths[3] = Helper.ReadAddressText(br, br.ReadInt32()); Awaken[i].Paths[4] = Helper.ReadAddressText(br, br.ReadInt32()); Awaken[i].Paths[5] = Helper.ReadAddressText(br, br.ReadInt32()); Awaken[i].Paths[6] = Helper.ReadAddressText(br, br.ReadInt32()); //28 br.BaseStream.Seek(2, SeekOrigin.Current); Awaken[i].unk4 = br.ReadInt16(); Awaken[i].unk5 = br.ReadInt16(); Awaken[i].unk6 = br.ReadInt16(); Awaken[i].unk7 = br.ReadInt16(); Awaken[i].unk8 = br.ReadInt16(); Awaken[i].unk9 = br.ReadInt16(); Awaken[i].unk10 = br.ReadInt16(); Awaken[i].unk11 = br.ReadInt32(); //20 } br.Close(); }