Exemple #1
0
        private static byte[] GetUncompressedPayload(Record record)
        {
            byte[] result             = new byte[GetUncompressedPayloadSize(record)];
            MArrayPosition <byte> pos = new MArrayPosition <byte>(result);

            foreach (var field in record.Fields)
            {
                int    fieldLength       = field.Payload.Length;
                ushort storedFieldLength = unchecked ((ushort)fieldLength);
                if (fieldLength > UInt16.MaxValue)
                {
                    MBitConverter.Set(pos, XXXX);
                    pos += 4;

                    MBitConverter.Set(pos, (ushort)4);
                    pos += 2;

                    MBitConverter.Set(pos, fieldLength);
                    pos += 4;
                    storedFieldLength = 0;
                }

                MBitConverter.Set(pos, field.FieldType);
                pos += 4;

                MBitConverter.Set(pos, storedFieldLength);
                pos += 2;

                MBuffer.BlockCopy(field.Payload, 0, pos, 0, fieldLength);
                pos += fieldLength;
            }

            return(result);
        }
Exemple #2
0
    void receiveGridInfo(string data)
    {
        string tmpStr = data.Substring(1, data.Length - 2);

        byte[] tmpBuffer = MBuffer.strToBuffer(tmpStr);
        mOtherPlayerGridInfo_1 = MBuffer.bufferToIntArray(tmpBuffer, 11, 23);
    }
Exemple #3
0
            public Table[] mt;             /* metatables for basic types */

            public global_State()
            {
                strt       = luaM_newobject <stringtable> (null);
                l_registry = luaM_newobject <TValue> (null);
                buff       = luaM_newobject <MBuffer> (null);
                tmname     = luaM_emptyvector <TString> (null, (int)TMS.TM_N);
                mt         = luaM_emptyvector <Table> (null, cc.LUA_NUMTAGS);
            }
Exemple #4
0
        public string decrypt()
        {
            string ptext = "";

            string[] ssize = MBuffer.Split(null);
            for (int i = 0; i < ssize.Length - 1; i++)
            {
                ptext += MBook[Convert.ToInt32(ssize[i])];
            }
            return(ptext);
        }
Exemple #5
0
 public static byte[] luaZ_openspace(lua_State L, MBuffer buff, int n)
 {
     if (n > buff.buffsize)
     {
         if (n < cc.LUA_MINBUFFER)
         {
             n = cc.LUA_MINBUFFER;
         }
         luaZ_resizebuffer(L, buff, n);
     }
     return(buff.buffer);
 }
Exemple #6
0
            public static void save(LexState ls, int c)
            {
                MBuffer b = ls.buff;

                if (luaZ_bufflen(b) + 1 > luaZ_sizebuffer(b))
                {
                    if (luaZ_sizebuffer(b) > MAX_SIZE / 2)
                    {
                        lexerror(ls, "lexical element too long", 0);
                    }
                    int newsize = luaZ_sizebuffer(b) * 2;
                    luaZ_resizebuffer(ls.L, b, newsize);
                }
                b.buffer[b.n++] = (byte)c;
            }
Exemple #7
0
        private static (BethesdaRecord record, BethesdaGroup[] subgroups) Write(Record record, ref MArrayPosition <byte> pos)
        {
            var result = default((BethesdaRecord record, BethesdaGroup[] subgroups));

            if (record.IsDummy)
            {
                goto groups;
            }

            result.record = new BethesdaRecord(pos)
            {
                RecordType = record.RecordType,
                DataSize   = unchecked ((uint)(CalculateSize(record, false) - 24)),
                Flags      = record.Flags,
                Id         = record.Id,
                Revision   = record.Revision,
                Version    = record.Version,
                UNKNOWN_22 = record.UNKNOWN_22
            };

            pos += 24;
            byte[] payload = record.Flags.HasFlag(BethesdaRecordFlags.Compressed)
                ? GetCompressedPayload(record)
                : GetUncompressedPayload(record);
            int payloadLength = payload.Length;

            MBuffer.BlockCopy(payload, 0, pos, 0, payloadLength);

            pos += payloadLength;

groups:
            result.subgroups = new BethesdaGroup[record.Subgroups.Count];
            for (int i = 0; i < result.subgroups.Length; i++)
            {
                result.subgroups[i] = Write(record.Subgroups[i], ref pos);
            }

            return(result);
        }
Exemple #8
0
 public static void luaZ_freebuffer(lua_State L, MBuffer buff)
 {
     luaZ_resizebuffer(L, buff, 0);
 }
Exemple #9
0
 public static void luaZ_resizebuffer(lua_State L, MBuffer buff, int size)
 {
     buff.buffer   = luaM_reallocv <byte> (L, buff.buffer, buff.buffsize, size);
     buff.buffsize = size;
 }
Exemple #10
0
 public static void luaZ_resetbuffer(MBuffer buff)
 {
     buff.n = 0;
 }
Exemple #11
0
 public static void luaZ_buffremove(MBuffer buff, int i)
 {
     buff.n -= i;
 }
Exemple #12
0
 public static int luaZ_bufflen(MBuffer buff)
 {
     return(buff.n);
 }
Exemple #13
0
 public static int luaZ_sizebuffer(MBuffer buff)
 {
     return(buff.buffsize);
 }
Exemple #14
0
 public static byte[] luaZ_buffer(MBuffer buff)
 {
     return(buff.buffer);
 }
Exemple #15
0
 public static void luaZ_initbuffer(lua_State L, MBuffer buff)
 {
     buff.buffer = null; buff.buffsize = 0;
 }
Exemple #16
0
 public static bool buff2num(MBuffer b, TValue o)
 {
     return(luaO_str2num(luaZ_buffer(b), o) != 0);
 }