public PAX(string filename) { /*FileStream fs = new FileStream(@"D:\Desktop\KHDebug\KHDebug\bin\DesktopGL\AnyCPU\Debug\Content\Effects\Visual\SavePoint\p0\MSET\move_001.frames", FileMode.Create); * BinaryWriter wr = new BinaryWriter(fs); * * for (int i=0;i<500;i++) * { * * float v1 = (float)(Math.Sin((i/250f)*Math.PI)+1)/2f; * float v2 = 1- v1; * * wr.Write((ushort)11); * wr.Write((ushort)0); * wr.Write(1.000f * v1 + 0.745f * v2); * * wr.Write((ushort)12); * wr.Write((ushort)0); * wr.Write(0.999f * v1 + 1.000f * v2); * * wr.Write((ushort)13); * wr.Write((ushort)0); * wr.Write(0.745f * v1 + 0.982f * v2); * * wr.Write((ushort)11); * wr.Write((ushort)2); * wr.Write(1.000f * v1 + 0.745f * v2); * * wr.Write((ushort)12); * wr.Write((ushort)2); * wr.Write(0.999f * v1 + 1.000f * v2); * * wr.Write((ushort)13); * wr.Write((ushort)2); * wr.Write(0.745f * v1 + 0.982f * v2); * * * if ((i >= 43 && i < 63)|| * (i >= 168 && i < 188)|| * (i >= 294 && i < 314)|| * (i >= 420 && i < 440)) * { * wr.Write((ushort)10); * wr.Write((ushort)1); * if (i >= 420) * wr.Write(1f- ((i - 420) / 20f)); * else if (i >= 294) * wr.Write(1f - ((i - 294) / 20f)); * else if (i >= 168) * wr.Write(1f - ((i - 168) / 20f)); * else * wr.Write(1f - ((i - 43) / 20f)); * } * else * * if (i < 43 || * (i >= 126 && i < 168) || * (i >= 251 && i < 294) || * (i >= 377 && i < 420)) * { * wr.Write((ushort)10); * wr.Write((ushort)1); * wr.Write(1f); * } * else * { * wr.Write((ushort)10); * wr.Write((ushort)1); * wr.Write(0f); * } * * * if (i < 10) * { * wr.Write((ushort)10); * wr.Write((ushort)0); * wr.Write((i / 9f)); * * wr.Write((ushort)10); * wr.Write((ushort)2); * wr.Write(i / 9f); * * wr.Write((ushort)10); * wr.Write((ushort)3); * wr.Write(i / 9f); * } * * wr.Write(-1); * } * * wr.Close(); * fs.Close();*/ /*FileStream fs = new FileStream(@"Content\Effects\Visual\FakeHUD\MSET\move_002.frames", FileMode.OpenOrCreate); * BinaryWriter wr = new BinaryWriter(fs); * for (int i = 0; i < 1; i++) * { * wr.Write((ushort)14); * wr.Write((ushort)0); * wr.Write(0f); * * wr.Write(-1); * } * * wr.Close(); * fs.Close(); * fs.Close();*/ if (File.Exists(filename.Replace(".dae", ".info"))) { string[] input = File.ReadAllLines(filename.Replace(".dae", ".info")); switch (input[0]) { case "None": this.DType = DrawType.None; break; case "ToScreen2D": this.DType = DrawType.ToScreen2D; break; case "FullScreen": this.DType = DrawType.FullScreen; break; case "YawPitchX": this.DType = DrawType.YawPitchX; break; case "YawPitchY": this.DType = DrawType.YawPitchY; break; case "YawPitchAll": this.DType = DrawType.YawPitchAll; break; case "YawX": this.DType = DrawType.YawX; break; case "YawY": this.DType = DrawType.YawY; break; case "YawAll": this.DType = DrawType.YawAll; break; case "PitchX": this.DType = DrawType.PitchX; break; case "PitchY": this.DType = DrawType.PitchY; break; case "PitchAll": this.DType = DrawType.PitchAll; break; } if (input[1] == "CullNone") { this.Cull = false; } if (input[2] == "DepthNone") { this.Depth = false; } } daeFile = new DAE(filename); daeFile.Parse(); RecreateVertexBuffer(true); //daeFile.ModelType = Model.MDType.Sky; //daeFile.Location = new Vector3(0, 0, 0); if (Directory.Exists(filename.Replace(Path.GetFileName(filename), "MSET"))) { moveFile = new BinaryMoveset(filename.Replace(Path.GetFileName(filename), "MSET")); moveFile.Links.Add(daeFile); moveFile.Parse(); moveFile.PlayingIndex = 0; moveFile.InterpolateAnimation = false; daeFile.Links.Add(moveFile); string[] frameFiles = Directory.GetFiles(filename.Replace(Path.GetFileName(filename), "MSET"), "*.frames"); Array.Sort(frameFiles); Frames = new byte[frameFiles.Length][]; FramesIndices = new List <int> [frameFiles.Length]; for (int i = 0; i < Frames.Length; i++) { Frames[i] = File.ReadAllBytes(frameFiles[i]); FramesIndices[i] = new List <int>(0); FramesIndices[i].Add(0); for (int j = 0; j < Frames[i].Length - 4; j += 4) { int read = BitConverter.ToInt32(Frames[i], j); if (read == -1) { FramesIndices[i].Add(j + 4); } } } } }
public static void LoadCharacter(string modelName, string movsesetName, ref Model target) { Model model = null; if (File.Exists(@"Content\Models\" + modelName + @"\" + modelName + ".dae")) { for (int i = 0; i < MainGame.ResourceFiles.Count; i++) { if (MainGame.ResourceFiles[i] is Model && MainGame.ResourceFiles[i].Name == modelName) { model = MainGame.ResourceFiles[i] as Model; break; } } if (model == null) { model = new DAE(@"Content\Models\" + modelName + @"\" + modelName + ".dae"); model.Parse(); MainGame.ResourceFiles.Add(model); } model.Render = true; target = model; model.Opacity = 0; } if (model != null && Directory.Exists(@"Content\Models\" + movsesetName + @"\MSET")) { BinaryMoveset mset = null; for (int i = 0; i < MainGame.ResourceFiles.Count; i++) { if (MainGame.ResourceFiles[i] is BinaryMoveset && MainGame.ResourceFiles[i].Name == movsesetName) { mset = MainGame.ResourceFiles[i] as BinaryMoveset; break; } } if (mset == null) { mset = new BinaryMoveset(@"Content\Models\" + movsesetName + @"\MSET"); mset.Links.Add(model); mset.Parse(); MainGame.ResourceFiles.Add(mset); if (Directory.Exists(@"Content\Models\" + movsesetName + @"\P_EX100_MSET")) { var mset2 = new BinaryMoveset(@"Content\Models\" + movsesetName + @"\P_EX100_MSET"); mset2.Links.Add(Program.game.Player); mset2.Links.Add(mset); mset2.Parse(); mset.Links.Add(mset2); mset2.Render = true; mset2.PlayingIndex = mset2.idle_; } } mset.Render = true; mset.PlayingIndex = mset.idle_; if (model.Links.Count == 0) { model.Links.Insert(0, mset); } } }