public int frame; //フレーム情報 //--- PadDataコピー用 public void set(PadData p) { frame = p.frame; for(int i = 0; i < p.key.Length; i++) { key[i] = p.key[i]; } }
//-------------------------------------- // pcsx2_rr の内容を移植 // fread(&g_Movie.FrameMax, 4, 1, g_Movie.File); // fread(&g_Movie.Rerecs, 4, 1, g_Movie.File); // fread(g_PadData[0]+2, 6, 1, g_Movie.File); //-------------------------------------- public void load(string file) { this.file = file; FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read); BinaryReader binRead = new BinaryReader(fs); try { info.FrameMax = binRead.ReadUInt32(); info.Rerecs = binRead.ReadUInt32(); keys.Clear(); for (int i=0;i<info.FrameMax;i++) { PadData key = new PadData(); key.key = binRead.ReadBytes(6); key.frame = i; keys.Add(key); } } catch (EndOfStreamException) { Console.WriteLine("end of stream"); } finally { binRead.Close(); fs.Close(); } }
//============================================= // チェックリストの結果からPadDataを作成 //============================================= private PadData createPadData() { CheckedListBox list = checkedListBox2; PadData pad = new PadData(); // 現在選択されているframeを代入 pad.set(tas.keys[selectFrame]); // textから string[] strs = textBox1.Text.Split(','); if(strs.Length > 0) { for(int i = 0; i < strs.Length; i++) { if (i >= pad.key.Length) break; byte n; if (!byte.TryParse(strs[i], out n)) continue; pad.key[i] = n; } } //表示通りに更新 for (int i = 0; i < list.Items.Count; i++) { pad.setKey(list.Items[i].ToString(), list.GetItemChecked(i)); } return pad; }