Пример #1
0
        private RenderDataSource createRenderDataSourceFromNodes(CNode rdsNode, CNode dbNode)
        {
            MiscUtil.Conversion.BigEndianBitConverter bc = new MiscUtil.Conversion.BigEndianBitConverter();
            CustomVertex.PositionNormalColored[] vertices = new CustomVertex.PositionNormalColored[(int)dbNode.attributes["elementCount"].data];

            Vector3 pos = new Vector3();
            int color;
            Vector3 normal = new Vector3();
            int vertexCount = 0;
            for (int i = 0; i < (int)dbNode.attributes["size"].data; i += 28) {
                pos.X = bc.ToSingle(dbNode.subNodes[3].data, i);
                pos.Y = bc.ToSingle(dbNode.subNodes[3].data, i + 4);
                pos.Z = bc.ToSingle(dbNode.subNodes[3].data, i + 8);

                color = bc.ToInt32(dbNode.subNodes[3].data, i + 12);

                normal.X = bc.ToSingle(dbNode.subNodes[3].data, i + 16);
                normal.Y = bc.ToSingle(dbNode.subNodes[3].data, i + 20);
                normal.Z = bc.ToSingle(dbNode.subNodes[3].data, i + 24);

                vertices[vertexCount] = new CustomVertex.PositionNormalColored(pos, normal, color);
                vertexCount++;
            }

            int indexCount = (int)rdsNode.subNodes[0].attributes["count"].data;
            ushort[] indices = new ushort[indexCount];
            for (int i = 0; i < indexCount; i++) {
                indices[i] = bc.ToUInt16(rdsNode.subNodes[0].subNodes[0].data, i * 2);
            }
            return new RenderDataSource(rdsNode.attributes["id"].value, vertices, indices);
        }
Пример #2
0
        public void Check()
        {
            System.IO.Stream reader = Console.OpenStandardInput();
               MiscUtil.Conversion.BigEndianBitConverter bebc = new MiscUtil.Conversion.BigEndianBitConverter();
               EndianBinaryWriter writer = new MiscUtil.IO.EndianBinaryWriter(bebc, Console.OpenStandardOutput());
               byte[] input = new byte[2];

               // is there a better way to check for data on the stream?
               while (reader.Read(input, 0, 2) > -1)
               {
                    ushort len = bebc.ToUInt16(input, 0);
                    byte[] incomingBytes = new byte[len];
                    reader.Read(incomingBytes, 0, len);
                    string incomingData = System.Text.Encoding.ASCII.GetString(incomingBytes);

                    using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\\output.log", true))
                    {
                         file.WriteLine(incomingData + "\r\n---------------------------------------\r\n");
                    }

                    string[] parse = System.Text.RegularExpressions.Regex.Split(incomingData, ":");
                    string command = parse[0];
                    string username = parse[1];
                    string domain = parse[2];

                    short aa = 2;
                    writer.Write(aa);
                    short bbtrue = 1;
                    short bbfalse = 0;
                    switch (command)
                    {
                         case "auth":
                              if (domain == "web.chat")
                              {
                                   writer.Write(bbtrue);
                              }
                              else
                              {
                                   string password = parse[3];
                                   WeavverMembershipProvider wup = new WeavverMembershipProvider();
                                   if (wup.ValidateUser(username, password))
                                   {
                                        writer.Write(bbtrue);
                                   }
                                   else
                                   {
                                        writer.Write(bbfalse);
                                   }
                              }
                              break;

                         case "isuser":
                              writer.Write(bbtrue);
                              break;

                         case "setpass":
                              writer.Write(bbfalse);
                              break;
                    }
               }
               System.Threading.Thread.Sleep(100);
        }