Esempio n. 1
0
        public Task <ScriptKeyRecord> Post([FromBody] String scriptKey)
        {
            ScriptKeyRecord lookup = new ScriptKeyRecord();

            lookup.name = scriptKey;
            return(scriptKeyRepository.GetRecord(lookup));
        }
Esempio n. 2
0
        public async Task <List <ScriptKeyRecord> > GetCompressedKey(QScript.GamePlatform platform, QScript.GameVersion version)
        {
            ScriptKeyRecord lookup = new ScriptKeyRecord();

            lookup.platform = platform;
            lookup.version  = version;
            return(await scriptKeyRepository.GetCompressTables(lookup));
        }
Esempio n. 3
0
        public async Task <ScriptKeyRecord> GetByChecksum(System.Int32 checksum)
        {
            ScriptKeyRecord lookup = new ScriptKeyRecord();

            lookup.checksum = checksum;
            var result = await scriptKeyRepository.GetRecord(lookup);

            return(result);
        }
        public async Task <List <SymbolEntry> > ResolveChecksums(List <SymbolEntry> input)
        {
            ScriptKeyRecord record = null;

            System.UInt32 checksum;
            foreach (var item in input)
            {
                if (System.UInt32.TryParse(item.name.ToString(), out checksum))
                {
                    String name = await checksumResolver.ResolveChecksum(checksum, item.compressedByteSize);

                    if (name != null)
                    {
                        item.compressedByteSize = null;
                        item.name = name;
                    }
                    else
                    {
                        item.name = checksum;
                    }
                }
                switch (item.type)
                {
                case QScript.ESymbolType.ESYMBOLTYPE_NAME:
                    if (System.UInt32.TryParse(item.value.ToString(), out checksum))
                    {
                        var name = await checksumResolver.ResolveChecksum(checksum);

                        if (name != null)
                        {
                            item.value = name;
                        }
                        else
                        {
                            item.value = checksum;
                        }
                    }
                    break;

                case QScript.ESymbolType.ESYMBOLTYPE_STRUCTURE:
                    item.value = await ResolveChecksums((List <SymbolEntry>) item.value);

                    break;

                case QScript.ESymbolType.ESYMBOLTYPE_ARRAY:
                    var array = (List <object>)item.value;
                    for (int i = 0; i < ((List <object>)item.value).Count; i++)
                    {
                        switch (item.subType)
                        {
                        case QScript.ESymbolType.ESYMBOLTYPE_NAME:
                            record   = new ScriptKeyRecord();
                            checksum = (System.UInt32)((List <object>)item.value)[i];
                            var name = await checksumResolver.ResolveChecksum(checksum);

                            if (name != null)
                            {
                                ((List <object>)item.value)[i] = name;
                            }
                            else
                            {
                                ((List <object>)item.value)[i] = checksum;
                            }
                            break;

                        case QScript.ESymbolType.ESYMBOLTYPE_STRUCTURE:
                            ((List <object>)item.value)[i] = await ResolveChecksums((List <SymbolEntry>)((List <object>)item.value)[i]);

                            break;
                        }
                    }
                    break;
                }
            }
            return(input);
        }