Esempio n. 1
0
 public void ObjectContentHashOnto(ref int lastHash)
 {
     HashUtils.ContentHashOnto(this.NextLoopTriggerID, ref lastHash);
     HashUtils.ContentHashOnto(this.AfterSkillTriggerID, ref lastHash);
     if (this.BeforeSkillIDs != null)
     {
         foreach (string str in this.BeforeSkillIDs)
         {
             HashUtils.ContentHashOnto(str, ref lastHash);
         }
     }
     if (this.ChargeLoopSkillIDs != null)
     {
         foreach (string str2 in this.ChargeLoopSkillIDs)
         {
             HashUtils.ContentHashOnto(str2, ref lastHash);
         }
     }
     if (this.AfterSkillIDs != null)
     {
         foreach (string str3 in this.AfterSkillIDs)
         {
             HashUtils.ContentHashOnto(str3, ref lastHash);
         }
     }
     if (this.TransientSkillIDs != null)
     {
         foreach (string str4 in this.TransientSkillIDs)
         {
             HashUtils.ContentHashOnto(str4, ref lastHash);
         }
     }
     if (this.ChargeLoopDurations != null)
     {
         foreach (float num5 in this.ChargeLoopDurations)
         {
             HashUtils.ContentHashOnto(num5, ref lastHash);
         }
     }
     if (this.ChargeTimeRatio != null)
     {
         HashUtils.ContentHashOnto(this.ChargeTimeRatio.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.ChargeTimeRatio.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.ChargeTimeRatio.dynamicKey, ref lastHash);
     }
     if (this.ChargeLoopEffects != null)
     {
         foreach (MixinEffect effect in this.ChargeLoopEffects)
         {
             HashUtils.ContentHashOnto(effect.EffectPattern, ref lastHash);
             HashUtils.ContentHashOnto(effect.AudioPattern, ref lastHash);
         }
     }
     if (this.ChargeSwitchEffects != null)
     {
         foreach (MixinEffect effect2 in this.ChargeSwitchEffects)
         {
             HashUtils.ContentHashOnto(effect2.EffectPattern, ref lastHash);
             HashUtils.ContentHashOnto(effect2.AudioPattern, ref lastHash);
         }
     }
     if (this.ChargeLoopAudioPatterns != null)
     {
         foreach (string str5 in this.ChargeLoopAudioPatterns)
         {
             HashUtils.ContentHashOnto(str5, ref lastHash);
         }
     }
     if (this.ChargeSwitchAudioPatterns != null)
     {
         foreach (string str6 in this.ChargeSwitchAudioPatterns)
         {
             HashUtils.ContentHashOnto(str6, ref lastHash);
         }
     }
     HashUtils.ContentHashOnto(this.ChargeSwitchWindow, ref lastHash);
 }
Esempio n. 2
0
 public Field GetField(string name)
 {
     CheckValidity();
     return(GetField(HashUtils.GetFNV(name)));
 }
Esempio n. 3
0
        void ImportPhoto(Photo photo, bool copy)
        {
            Log.WarningFormat("Importing {0}", photo.Name);
            PhotoStore to_store = to_db.Photos;

            string photo_path = photo.VersionUri(Photo.OriginalVersionId).AbsolutePath;

            while (!System.IO.File.Exists(photo_path))
            {
                Log.Debug("Not found, trying the mappings...");
                foreach (string key in PathMap.Keys)
                {
                    string path = photo_path;
                    path = path.Replace(key, PathMap [key]);
                    Log.DebugFormat("Replaced path {0}", path);
                    if (System.IO.File.Exists(path))
                    {
                        photo_path = path;
                        break;;
                    }
                }

                if (System.IO.File.Exists(photo_path))
                {
                    Log.Debug("Exists!!!");
                    continue;
                }

                string [] parts = photo_path.Split(new char[] { '/' });
                if (parts.Length > 6)
                {
                    string           folder     = String.Join("/", parts, 0, parts.Length - 4);
                    PickFolderDialog pfd        = new PickFolderDialog(mdd.Dialog, folder);
                    string           new_folder = pfd.Run();
                    pfd.Dialog.Destroy();
                    if (new_folder == null)                     //Skip
                    {
                        return;
                    }
                    Log.DebugFormat("{0} maps to {1}", folder, new_folder);

                    PathMap[folder] = new_folder;
                }
                else
                {
                    Log.Debug("point me to the file");
                }
                Log.DebugFormat("FNF: {0}", photo_path);
            }

            string destination;
            Photo  newp;

            if (copy)
            {
                destination = FindImportDestination(new Hyena.SafeUri(photo_path), photo.Time).AbsolutePath;
            }
            else
            {
                destination = photo_path;
            }
            var dest_uri = new SafeUri(photo_path);

            photo.DefaultVersionId   = 1;
            photo.DefaultVersion.Uri = dest_uri;

            if (photo.DefaultVersion.ImportMD5 == String.Empty)
            {
                (photo.DefaultVersion as PhotoVersion).ImportMD5 = HashUtils.GenerateMD5(photo.DefaultVersion.Uri);
            }

            if (photo_path != destination)
            {
                System.IO.File.Copy(photo_path, destination);

                try {
                    File.SetAttributes(destination, File.GetAttributes(destination) & ~FileAttributes.ReadOnly);
                    DateTime create = File.GetCreationTime(photo_path);
                    File.SetCreationTime(destination, create);
                    DateTime mod = File.GetLastWriteTime(photo_path);
                    File.SetLastWriteTime(destination, mod);
                } catch (IOException) {
                    // we don't want an exception here to be fatal.
                }
            }

            //FIXME simplify the following code by letting CreateFrom import all versions
            //      instead of looping over all versions here
            newp = to_store.CreateFrom(photo, true, roll_map [photo.RollId]);

            if (newp == null)
            {
                return;
            }

            foreach (Tag t in photo.Tags)
            {
                Log.WarningFormat("Tagging with {0}", t.Name);
                newp.AddTag(tag_map [t.Id]);
            }

            foreach (uint version_id in photo.VersionIds)
            {
                if (version_id != Photo.OriginalVersionId)
                {
                    PhotoVersion version = photo.GetVersion(version_id) as PhotoVersion;
                    uint         newv    = newp.AddVersion(version.BaseUri, version.Filename, version.Name, version.IsProtected);
                    if (version_id == photo.DefaultVersionId)
                    {
                        newp.DefaultVersionId = newv;
                    }
                }
            }

            //FIXME Import extra info (time, description, rating)
            newp.Time        = photo.Time;
            newp.Description = photo.Description;
            newp.Rating      = photo.Rating;

            to_store.Commit(newp);
        }
        /// <summary>
        /// Make sure no data duplicated
        /// </summary>
        public void FilterDatasetByMD5(string[] datasetByPriority)
        {
            var dsMap = (from dir in GetDatasetDirectories()
                         let dataset = Path.GetFileName(dir)
                                       from file in CelFile.GetCelFiles(dir)
                                       select new { Dataset = dataset, File = file, MD5 = HashUtils.GetDecompressedMD5Hash(file) }).ToGroupDictionary(m => m.Dataset);

            foreach (var dataset in datasetByPriority)
            {
                var fileMap = dsMap[dataset].ToDictionary(m => m.MD5);
                foreach (var ds in dsMap)
                {
                    if (ds.Key.Equals(dataset))
                    {
                        continue;
                    }

                    var dsfiles = ds.Value;
                    foreach (var cel in dsfiles)
                    {
                        if (!File.Exists(cel.File))
                        {
                            continue;
                        }

                        if (fileMap.ContainsKey(cel.MD5))
                        {
                            Console.WriteLine("Excluding " + cel.File);
                            ExcludeFile(cel.File);
                        }
                    }
                }
            }
        }
Esempio n. 5
0
 byte[] CalculateHash()
 {
     byte[] data = Shared.StructToBytes(this);
     return(HashUtils.ComputeSha256(data, 0, DataToHash));
 }
Esempio n. 6
0
 public void ObjectContentHashOnto(ref int lastHash)
 {
     if (this.HitDistanceBeyond != null)
     {
         HashUtils.ContentHashOnto(this.HitDistanceBeyond.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.HitDistanceBeyond.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.HitDistanceBeyond.dynamicKey, ref lastHash);
     }
     HashUtils.ContentHashOnto(this.Reverse, ref lastHash);
     if (this.Distance != null)
     {
         HashUtils.ContentHashOnto(this.Distance.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.Distance.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.Distance.dynamicKey, ref lastHash);
     }
     if (this.DamagePercentageUp != null)
     {
         HashUtils.ContentHashOnto(this.DamagePercentageUp.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.DamagePercentageUp.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.DamagePercentageUp.dynamicKey, ref lastHash);
     }
     if (this.AttackRatio != null)
     {
         HashUtils.ContentHashOnto(this.AttackRatio.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.AttackRatio.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.AttackRatio.dynamicKey, ref lastHash);
     }
     if (this.AniDamageRatioUp != null)
     {
         HashUtils.ContentHashOnto(this.AniDamageRatioUp.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.AniDamageRatioUp.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.AniDamageRatioUp.dynamicKey, ref lastHash);
     }
     if (this.CriticalChanceRatioUp != null)
     {
         HashUtils.ContentHashOnto(this.CriticalChanceRatioUp.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.CriticalChanceRatioUp.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.CriticalChanceRatioUp.dynamicKey, ref lastHash);
     }
     if (this.CriticalDamageRatioUp != null)
     {
         HashUtils.ContentHashOnto(this.CriticalDamageRatioUp.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.CriticalDamageRatioUp.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.CriticalDamageRatioUp.dynamicKey, ref lastHash);
     }
     if (this.Actions != null)
     {
         foreach (ConfigAbilityAction action in this.Actions)
         {
             if (action is IHashable)
             {
                 HashUtils.ContentHashOnto((IHashable)action, ref lastHash);
             }
         }
     }
     if (this.Predicates != null)
     {
         foreach (ConfigAbilityPredicate predicate in this.Predicates)
         {
             if (predicate is IHashable)
             {
                 HashUtils.ContentHashOnto((IHashable)predicate, ref lastHash);
             }
         }
     }
 }
 public void ObjectContentHashOnto(ref int lastHash)
 {
     HashUtils.ContentHashOnto((int)this.LevelBuff, ref lastHash);
     HashUtils.ContentHashOnto(this.OnModifierName, ref lastHash);
     HashUtils.ContentHashOnto(this.OffModifierName, ref lastHash);
 }
Esempio n. 8
0
 public void ObjectContentHashOnto(ref int lastHash)
 {
     HashUtils.ContentHashOnto(this.PointName, ref lastHash);
     HashUtils.ContentHashOnto(this.OriginName, ref lastHash);
     HashUtils.ContentHashOnto(this.OtherName, ref lastHash);
 }
Esempio n. 9
0
 public override int GetHashCode() => HashUtils.Combine(Line, Column);
Esempio n. 10
0
 public void ObjectContentHashOnto(ref int lastHash)
 {
     HashUtils.ContentHashOnto((int)this.TargetNature, ref lastHash);
 }
Esempio n. 11
0
 public IByteBuffer Encode(IByteBuffer byteBuf)
 {
     ByteBufUtils.WriteUTF8(byteBuf, HashUtils.MD5(OldPassword));
     ByteBufUtils.WriteUTF8(byteBuf, HashUtils.MD5(NewPassword));
     return(byteBuf);
 }
Esempio n. 12
0
 public void ObjectContentHashOnto(ref int lastHash)
 {
     HashUtils.ContentHashOnto(this.CDSkillID, ref lastHash);
 }
Esempio n. 13
0
 public string GenerateHash(string input, Encoding encoding)
 {
     return(HashUtils.ConvertToSha256HashString(input, encoding));
 }
Esempio n. 14
0
 public void ObjectContentHashOnto(ref int lastHash)
 {
     if (this.DamagePercentage != null)
     {
         HashUtils.ContentHashOnto(this.DamagePercentage.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.DamagePercentage.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.DamagePercentage.dynamicKey, ref lastHash);
     }
     if (this.AddedDamageValue != null)
     {
         HashUtils.ContentHashOnto(this.AddedDamageValue.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.AddedDamageValue.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.AddedDamageValue.dynamicKey, ref lastHash);
     }
     if (this.PlainDamage != null)
     {
         HashUtils.ContentHashOnto(this.PlainDamage.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.PlainDamage.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.PlainDamage.dynamicKey, ref lastHash);
     }
     if (this.PlainDamagePercentage != null)
     {
         HashUtils.ContentHashOnto(this.PlainDamagePercentage.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.PlainDamagePercentage.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.PlainDamagePercentage.dynamicKey, ref lastHash);
     }
     if (this.FireDamage != null)
     {
         HashUtils.ContentHashOnto(this.FireDamage.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.FireDamage.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.FireDamage.dynamicKey, ref lastHash);
     }
     if (this.FireDamagePercentage != null)
     {
         HashUtils.ContentHashOnto(this.FireDamagePercentage.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.FireDamagePercentage.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.FireDamagePercentage.dynamicKey, ref lastHash);
     }
     if (this.ThunderDamage != null)
     {
         HashUtils.ContentHashOnto(this.ThunderDamage.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.ThunderDamage.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.ThunderDamage.dynamicKey, ref lastHash);
     }
     if (this.ThunderDamagePercentage != null)
     {
         HashUtils.ContentHashOnto(this.ThunderDamagePercentage.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.ThunderDamagePercentage.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.ThunderDamagePercentage.dynamicKey, ref lastHash);
     }
     if (this.IceDamage != null)
     {
         HashUtils.ContentHashOnto(this.IceDamage.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.IceDamage.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.IceDamage.dynamicKey, ref lastHash);
     }
     if (this.IceDamagePercentage != null)
     {
         HashUtils.ContentHashOnto(this.IceDamagePercentage.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.IceDamagePercentage.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.IceDamagePercentage.dynamicKey, ref lastHash);
     }
     if (this.AlienDamage != null)
     {
         HashUtils.ContentHashOnto(this.AlienDamage.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.AlienDamage.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.AlienDamage.dynamicKey, ref lastHash);
     }
     if (this.AlienDamagePercentage != null)
     {
         HashUtils.ContentHashOnto(this.AlienDamagePercentage.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.AlienDamagePercentage.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.AlienDamagePercentage.dynamicKey, ref lastHash);
     }
     if (this.AniDamageRatio != null)
     {
         HashUtils.ContentHashOnto(this.AniDamageRatio.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.AniDamageRatio.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.AniDamageRatio.dynamicKey, ref lastHash);
     }
     if (this.RetreatVelocity != null)
     {
         HashUtils.ContentHashOnto(this.RetreatVelocity.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.RetreatVelocity.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.RetreatVelocity.dynamicKey, ref lastHash);
     }
     if (this.FrameHalt != null)
     {
         HashUtils.ContentHashOnto(this.FrameHalt.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(this.FrameHalt.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(this.FrameHalt.dynamicKey, ref lastHash);
     }
     HashUtils.ContentHashOnto((int)this.HitEffect, ref lastHash);
     if (this.AttackEffect != null)
     {
         HashUtils.ContentHashOnto(this.AttackEffect.EffectPattern, ref lastHash);
         HashUtils.ContentHashOnto(this.AttackEffect.SwitchName, ref lastHash);
         HashUtils.ContentHashOnto(this.AttackEffect.MuteAttackEffect, ref lastHash);
         HashUtils.ContentHashOnto((int)this.AttackEffect.AttackEffectTriggerPos, ref lastHash);
     }
     if (this.CameraShake != null)
     {
         HashUtils.ContentHashOnto(this.CameraShake.ShakeOnNotHit, ref lastHash);
         HashUtils.ContentHashOnto(this.CameraShake.ShakeRange, ref lastHash);
         HashUtils.ContentHashOnto(this.CameraShake.ShakeTime, ref lastHash);
         if (this.CameraShake.ShakeAngle.HasValue)
         {
             HashUtils.ContentHashOnto(this.CameraShake.ShakeAngle.Value, ref lastHash);
         }
         HashUtils.ContentHashOnto(this.CameraShake.ShakeStepFrame, ref lastHash);
         HashUtils.ContentHashOnto(this.CameraShake.ClearPreviousShake, ref lastHash);
     }
     HashUtils.ContentHashOnto(this.IsAnimEventAttack, ref lastHash);
     HashUtils.ContentHashOnto(this.IsInComboCount, ref lastHash);
     HashUtils.ContentHashOnto((int)this.HitLevel, ref lastHash);
     HashUtils.ContentHashOnto((int)base.Target, ref lastHash);
     if ((base.TargetOption != null) && (base.TargetOption.Range != null))
     {
         HashUtils.ContentHashOnto(base.TargetOption.Range.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(base.TargetOption.Range.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(base.TargetOption.Range.dynamicKey, ref lastHash);
     }
     if (base.Predicates != null)
     {
         foreach (ConfigAbilityPredicate predicate in base.Predicates)
         {
             if (predicate is IHashable)
             {
                 HashUtils.ContentHashOnto((IHashable)predicate, ref lastHash);
             }
         }
     }
 }
Esempio n. 15
0
 public void ObjectContentHashOnto(ref int lastHash)
 {
     HashUtils.ContentHashOnto((int)this.CategoryTag, ref lastHash);
 }
Esempio n. 16
0
        private void WriteXmlHeader(StreamWriter sw, FileInfo sourceFile, List <int> scans)
        {
            /*
             * xml header and namespace info
             */
            sw.Write("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" + lf
                     + "<mzXML" + lf);
            sw.Write(" xmlns=\"http://sashimi.sourceforge.net/schema_revision/mzXML_2.0\"" + lf
                     + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" + lf
                     +
                     " xsi:schemaLocation=\"http://sashimi.sourceforge.net/schema_revision/mzXML_2.0 http://sashimi.sourceforge.net/schema_revision/mzXML_2.0/mzXML_idx_2.0.xsd\">" +
                     lf);

            int    firstScan = this.rawFile.GetFirstSpectrumNumber();
            int    lastScan  = this.rawFile.GetLastSpectrumNumber();
            double startTime = this.rawFile.ScanToRetentionTime(firstScan) * 60;
            double endTime   = this.rawFile.ScanToRetentionTime(lastScan) * 60;

            /*
             * begin msRun
             */
            sw.Write(MyConvert.Format(" <msRun scanCount=\"{0}\" startTime=\"PT{1:0.000}S\" endTime=\"PT{2:0.000}S\">" + lf, scans.Count, startTime, endTime));

            string sha1;

            try
            {
                sha1 = HashUtils.GetSHA1Hash(sourceFile.FullName).ToLower();
            }
            catch (Exception ex)
            {
                throw new Exception("Exception when calculating sha1 value of file " + sourceFile.Name, ex);
            }

            /*
             * parent (raw input) file
             */
            sw.Write("  <parentFile fileName=\"file://" + sourceFile.Name + "\" fileType=\"RAWData\" fileSha1=\"" + sha1 + "\"/>" + lf);

            /*
             * mass spec instrument section
             */
            // get the instrument model
            string instModel = this.rawFile.GetInstModel();

            // get acquisition software version
            string instSoftVersion = this.rawFile.GetInstSoftwareVersion();

            sw.Write("  <msInstrument>" + lf
                     + "   <msManufacturer category=\"msManufacturer\" value=\"Thermo Finnigan\"/>" + lf
                     + "   <msModel category=\"msModel\" value=\"" + instModel + "\"/>" + lf
                     + "   <msIonisation category=\"msIonisation\" value=\"ESI\"/>" + lf
                     + "   <msMassAnalyzer category=\"msMassAnalyzer\" value=\"Ion Trap\"/>" + lf
                     + "   <msDetector category=\"msDetector\" value=\"EMT\"/>" + lf);
            sw.Write("    <software type=\"acquisition\"" + lf
                     + "             name=\"Xcalibur\"" + lf
                     + "             version=\"" + instSoftVersion + "\"/>" + lf
                     + "  </msInstrument>" + lf);

            /*
             * data processing info
             */
            sw.Write("  <dataProcessing centroided=\"" + (this.doCentroid ? 1 : 0) + "\">" + lf
                     + "    <software type=\"conversion\"" + lf
                     + "              name=\"" + this.dataProcessingSoftware + "\"" + lf
                     + "              version=\"" + this.dataProcessingSoftwareVersion + "\"/>" + lf);

            foreach (string dataProcessingOperationName in this.dataProcessingOperations.Keys)
            {
                sw.Write(MyConvert.Format("    <processingOperation name=\"{0}\"" + lf
                                          + "                         value=\"{1}\"/>" + lf,
                                          dataProcessingOperationName,
                                          this.dataProcessingOperations[dataProcessingOperationName]));
            }

            /*
             * if (MIN_PEAKS_PER_SPECTRA > 0)
             * {
             * // Note the use of the namevaluetype element!
             * m_fout << "    <processingOperation name=\"min_peaks_per_spectra\"" << lf
             * << "                         value=\"" << MIN_PEAKS_PER_SPECTRA << "\"/>" << lf;
             * // And the comment field to give a little bit more information about the meaning of
             * // the last element.
             * m_fout << "    <comment>Scans with total number of peaks less than min_peaks_per_spectra were not included in this XML file</comment>" << lf;
             * }
             */
            sw.Write("  </dataProcessing>" + lf);
            // end data processing info
        }
 public void ObjectContentHashOnto(ref int lastHash)
 {
     HashUtils.ContentHashOnto(this.UniquModifierName, ref lastHash);
 }
Esempio n. 18
0
 public void ObjectContentHashOnto(ref int lastHash)
 {
     HashUtils.ContentHashOnto(this.SkillID, ref lastHash);
     HashUtils.ContentHashOnto(this.ReplaceButtonIconPath, ref lastHash);
 }
Esempio n. 19
0
 /// <summary>
 /// Get filename for a url as its MD5 hash
 /// </summary>
 /// <param name="url"></param>
 /// <returns></returns>
 public static string getFileName(string url)
 {
     return(HashUtils.GetMD5Hash(url));
 }
Esempio n. 20
0
 public void ObjectContentHashOnto(ref int lastHash)
 {
     HashUtils.ContentHashOnto(this.TracingLerpCoef, ref lastHash);
     HashUtils.ContentHashOnto(this.TracingLerpCoefAcc, ref lastHash);
     HashUtils.ContentHashOnto(this.TraceStartDelay, ref lastHash);
     HashUtils.ContentHashOnto(this.Distance, ref lastHash);
     HashUtils.ContentHashOnto(this.Angle, ref lastHash);
     HashUtils.ContentHashOnto(this.BaseOnTarget, ref lastHash);
     HashUtils.ContentHashOnto(base.BulletTypeName, ref lastHash);
     HashUtils.ContentHashOnto((int)base.Targetting, ref lastHash);
     if (base.BulletSpeed != null)
     {
         HashUtils.ContentHashOnto(base.BulletSpeed.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(base.BulletSpeed.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(base.BulletSpeed.dynamicKey, ref lastHash);
     }
     HashUtils.ContentHashOnto(base.IgnoreTimeScale, ref lastHash);
     if (base.AliveDuration != null)
     {
         HashUtils.ContentHashOnto(base.AliveDuration.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(base.AliveDuration.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(base.AliveDuration.dynamicKey, ref lastHash);
     }
     if (base.HitExplodeRadius != null)
     {
         HashUtils.ContentHashOnto(base.HitExplodeRadius.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(base.HitExplodeRadius.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(base.HitExplodeRadius.dynamicKey, ref lastHash);
     }
     HashUtils.ContentHashOnto(base.IsFixedHeight, ref lastHash);
     if (base.BulletEffect != null)
     {
         HashUtils.ContentHashOnto(base.BulletEffect.EffectPattern, ref lastHash);
         HashUtils.ContentHashOnto(base.BulletEffect.AudioPattern, ref lastHash);
     }
     HashUtils.ContentHashOnto(base.ApplyDistinctHitExplodeEffectPattern, ref lastHash);
     if (base.DistinctHitExplodeHeight != null)
     {
         HashUtils.ContentHashOnto(base.DistinctHitExplodeHeight.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(base.DistinctHitExplodeHeight.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(base.DistinctHitExplodeHeight.dynamicKey, ref lastHash);
     }
     if (base.HitExplodeEffect != null)
     {
         HashUtils.ContentHashOnto(base.HitExplodeEffect.EffectPattern, ref lastHash);
         HashUtils.ContentHashOnto(base.HitExplodeEffect.AudioPattern, ref lastHash);
     }
     if (base.HitExplodeEffectAir != null)
     {
         HashUtils.ContentHashOnto(base.HitExplodeEffectAir.EffectPattern, ref lastHash);
         HashUtils.ContentHashOnto(base.HitExplodeEffectAir.AudioPattern, ref lastHash);
     }
     if (base.HitExplodeEffectGround != null)
     {
         HashUtils.ContentHashOnto(base.HitExplodeEffectGround.EffectPattern, ref lastHash);
         HashUtils.ContentHashOnto(base.HitExplodeEffectGround.AudioPattern, ref lastHash);
     }
     if (base.SelfExplodeEffect != null)
     {
         HashUtils.ContentHashOnto(base.SelfExplodeEffect.EffectPattern, ref lastHash);
         HashUtils.ContentHashOnto(base.SelfExplodeEffect.AudioPattern, ref lastHash);
     }
     HashUtils.ContentHashOnto(base.MuteSelfHitExplodeActions, ref lastHash);
     HashUtils.ContentHashOnto(base.IsHitChangeTargetDirection, ref lastHash);
     HashUtils.ContentHashOnto(base.HitAnimEventID, ref lastHash);
     HashUtils.ContentHashOnto(base.FaceTarget, ref lastHash);
     HashUtils.ContentHashOnto((int)base.RemoveClearType, ref lastHash);
     HashUtils.ContentHashOnto((int)base.BulletHitType, ref lastHash);
     HashUtils.ContentHashOnto(base.BulletEffectGround, ref lastHash);
     HashUtils.ContentHashOnto(base.ExplodeEffectGround, ref lastHash);
     HashUtils.ContentHashOnto(base.ResetTime, ref lastHash);
     if (base.HitExplodeActions != null)
     {
         foreach (ConfigAbilityAction action in base.HitExplodeActions)
         {
             if (action is IHashable)
             {
                 HashUtils.ContentHashOnto((IHashable)action, ref lastHash);
             }
         }
     }
 }
        /// <summary>
        /// Make sure no data duplicated
        /// </summary>
        public void CheckDuplication(string outputFile)
        {
            outputFile = CheckFileName(outputFile);

            var cels = new Dictionary <string, HashSet <string> >();

            var dirs = GetDatasetDirectories();

            foreach (var subdir in dirs)
            {
                Console.Out.WriteLine(subdir);
                var files = CelFile.GetCelFiles(subdir);
                foreach (var file in files)
                {
                    try
                    {
                        string md5 = HashUtils.GetDecompressedMD5Hash(file);

                        var name = Path.GetFileName(subdir) + ":" + Path.GetFileName(file);
                        if (cels.ContainsKey(md5))
                        {
                            cels[md5].Add(name);
                        }
                        else
                        {
                            cels[md5] = new HashSet <string>(new string[] { name });
                        }
                    }
                    catch (Exception)
                    {
                        Console.Error.WriteLine(file);
                        if (Path.GetFileName(file).ToLower().StartsWith("gsm"))
                        {
                            var gsm      = GeoUtils.GetGsmName(file).ToUpper();
                            var filename = Path.GetFileNameWithoutExtension(file);

                            WebClient webClient = new WebClient();
                            var       uri       = string.Format(@"http://www.ncbi.nlm.nih.gov/geosuppl/?acc={0}&file={1}%2ECEL%2Egz", gsm, filename);
                            Console.WriteLine(uri);
                            webClient.DownloadFile(uri, file + ".gz");
                        }

                        throw;
                    }
                }
            }

            var dupfile = Path.Combine(DataDir, outputFile);

            using (StreamWriter sw = new StreamWriter(dupfile))
            {
                sw.WriteLine("Duplicated entries = " + cels.Count(m => m.Value.Count > 1).ToString());
                sw.WriteLine("Duplicated cels = " + (from cel in cels
                                                     where cel.Value.Count > 1
                                                     select cel.Value.Count).Sum().ToString());

                var dscount = (from c in cels.Values
                               from v in c
                               select v).GroupBy(m => m.StringBefore(":")).ToDictionary(m => m.Key, m => m.Count());

                var keys = cels.Keys.OrderBy(m => m).ToList();

                var sets = (from c in cels
                            where c.Value.Count > 1
                            from v in c.Value
                            select new { MD5 = c.Key, Dataset = v.StringBefore(":"), FileName = v.StringAfter(":") });
                var grp = sets.GroupBy(m => m.Dataset).OrderByDescending(m => m.Count()).ToList();

                sw.WriteLine();
                sw.Write("md5");
                foreach (var g in grp)
                {
                    sw.Write(string.Format("\t{0}({1}/{2})", g.Key, g.Count(), dscount[g.Key]));
                }
                sw.WriteLine();

                foreach (var md5 in keys)
                {
                    if (cels[md5].Count > 1)
                    {
                        sw.Write(md5);

                        foreach (var g in grp)
                        {
                            var m = g.FirstOrDefault(n => n.MD5.Equals(md5));
                            if (m != null)
                            {
                                sw.Write("\t" + m.FileName);
                            }
                            else
                            {
                                sw.Write("\t");
                            }
                        }
                        sw.WriteLine();
                    }
                }
            }
        }
Esempio n. 22
0
        public BetteryMember AuthenticateUser(string UserName, string Password)
        {
            bool          isMember = false;
            BetteryMember Member   = new BetteryMember();

            SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["MemberDBContext"].ToString());

            try
            {
                bool      isAuthed       = false;
                string    passwordDigest = String.Empty;
                HashUtils hashUtils      = new HashUtils();

                SqlCommand sqlCMD = new SqlCommand("GetPasswordDigest", sqlConn);
                sqlCMD.CommandType = CommandType.StoredProcedure;

                sqlCMD.Parameters.Add(new SqlParameter("@UserName", UserName));

                sqlConn.Open();
                if (sqlCMD.ExecuteScalar() != null)
                {
                    passwordDigest = sqlCMD.ExecuteScalar().ToString();
                }

                sqlConn.Close();
                if (passwordDigest != String.Empty)
                {
                    string salt = passwordDigest.Substring(passwordDigest.Length - 8);
                    string hash = passwordDigest.Substring(0, passwordDigest.Length - 8);

                    isAuthed = hashUtils.VerifyHashString(Password, hash, salt);
                }

                if (isAuthed)
                {
                    sqlCMD             = new SqlCommand("SwapStationAuthenticate", sqlConn);
                    sqlCMD.CommandType = CommandType.StoredProcedure;

                    sqlCMD.Parameters.Add(new SqlParameter("@UserName", UserName));
                    sqlCMD.Parameters.Add(new SqlParameter("@Password", passwordDigest));

                    sqlConn.Open();
                    SqlDataReader reader = sqlCMD.ExecuteReader();

                    while (reader.Read())
                    {
                        isMember = true;
                        Member.MemberFirstName = reader["FirstName"].ToString();
                        Member.MemberLastName  = reader["LastName"].ToString();
                        Member.MemberID        = (int)reader["MemberID"];
                        if (Convert.IsDBNull(reader["AccountBalance"]))
                        {
                            Member.AccountBalance = 0m;
                        }
                        else
                        {
                            Member.AccountBalance = reader.GetDecimal(reader.GetOrdinal("AccountBalance"));
                        }

                        if (reader["CustomerProfileID"] != System.DBNull.Value)
                        {
                            Member.CustomerProfileID = reader["CustomerProfileID"].ToString();
                        }
                        if (reader["PaymentProfileID"] != System.DBNull.Value)
                        {
                            Member.PaymentProfileID = reader["PaymentProfileID"].ToString();
                        }
                        if (reader["BatteryPacksInPlan"] != System.DBNull.Value)
                        {
                            Member.BatteryPacksInPlan = (int)reader["BatteryPacksInPlan"];
                        }
                        if (reader["BatteryPacksCheckedOut"] != System.DBNull.Value)
                        {
                            Member.BatteryPacksCheckedOut = (int)reader["BatteryPacksCheckedOut"];
                        }
                        if (reader["MemberTotalBatteries"] != System.DBNull.Value)
                        {
                            Member.MemberTotalBatteries = (int)reader["MemberTotalBatteries"];
                        }
                        if (reader["FreeCases"] != System.DBNull.Value)
                        {
                            Member.FreeCases = (int)reader["FreeCases"];
                        }
                        if (reader["CCExpireDate"] != System.DBNull.Value)
                        {
                            Member.CCExPireDate = reader["CCExpireDate"].ToString();
                        }
                        if (reader["CCLastFourDigits"] != System.DBNull.Value)
                        {
                            Member.CCLastFourDigits = reader["CCLastFourDigits"].ToString();
                        }
                        if (reader["CCLastFourDigits"] != System.DBNull.Value)
                        {
                            Member.CCLastFourDigits = reader["CCLastFourDigits"].ToString();
                        }
                        if (reader["GroupID"] != System.DBNull.Value)
                        {
                            Member.GroupID = (int)reader["GroupID"];
                        }
                        if (reader["CorpAccountID"] != System.DBNull.Value)
                        {
                            Member.GroupID = Common.Constants.Group.CorpAccount;
                        }
                    }
                }


                if (isMember)
                {
                    return(Member);
                }
                else
                {
                    return(null);
                }
            }
            catch
            {
                //  TODO: Log Error
                throw;
            }
            finally
            {
                sqlConn.Close();
            }
        }
Esempio n. 23
0
        public string ToString(Perso perso, TranslatedScript.TranslationSettings ts, bool advanced = false)
        {
            MapLoader l    = MapLoader.Loader;
            short     mask = 0;

            AITypes aiTypes = Settings.s.aiTypes;

            Vector3 vector3 = new Vector3 {
                x = 0, y = 0, z = 0
            };

            switch (nodeType)
            {
            case ScriptNode.NodeType.KeyWord:                     // KeyWordFunctionPtr
                if (param < aiTypes.keywordTable.Length)
                {
                    if (ts.exportMode)
                    {
                        if (aiTypes.keywordTable[param] == "Me")
                        {
                            return("this");
                        }
                        if (aiTypes.keywordTable[param] == "MainActor")
                        {
                            return("Controller.MainActor");
                        }
                        if (aiTypes.keywordTable[param] == "Nobody" || aiTypes.keywordTable[param] == "NoInput" || aiTypes.keywordTable[param] == "Nowhere" || aiTypes.keywordTable[param] == "NoGraph" || aiTypes.keywordTable[param] == "NoAction" || aiTypes.keywordTable[param] == "CapsNull")
                        {
                            return("null");
                        }
                    }

                    return(aiTypes.keywordTable[param]);
                }
                return("UnknownKeyword_" + param);

            case ScriptNode.NodeType.Condition:                     // GetConditionFunctionPtr
                if (param < aiTypes.conditionTable.Length)
                {
                    return(aiTypes.conditionTable[param]);
                }
                return("UnknownCondition_" + param);

            case ScriptNode.NodeType.Operator:                     // GetOperatorFunctionPtr
                if (advanced)
                {
                    if (param < aiTypes.operatorTable.Length)
                    {
                        return(aiTypes.operatorTable[param] + " (" + param + ")");
                    }
                }
                if (param < aiTypes.operatorTable.Length)
                {
                    return(aiTypes.operatorTable[param]);
                }
                return("UnknownOperator_" + param);

            case ScriptNode.NodeType.Function:                     // GetFunctionFunctionPtr
                if (param < aiTypes.functionTable.Length)
                {
                    return(aiTypes.functionTable[param]);
                }
                return("UnknownFunction_" + param);

            case ScriptNode.NodeType.Procedure:                     // ProcedureFunctionReturn
                if (param < aiTypes.procedureTable.Length)
                {
                    return(aiTypes.procedureTable[param]);
                }
                return("UnknownProcedure_" + param);

            case ScriptNode.NodeType.MetaAction:                     // meta action
                if (param < aiTypes.metaActionTable.Length)
                {
                    return(aiTypes.metaActionTable[param]);
                }
                return("UnknownMetaAction_" + param);

            case ScriptNode.NodeType.BeginMacro:
                return("BeginMacro");

            case ScriptNode.NodeType.EndMacro:
                return("EndMacro");

            case ScriptNode.NodeType.Field:
                if (param < aiTypes.fieldTable.Length)
                {
                    return(aiTypes.fieldTable[param]);
                }
                return("UnknownField_" + param);

            case ScriptNode.NodeType.DsgVarRef:                     // Dsg Var
                if (perso != null && perso.brain != null && perso.brain.mind != null)
                {
                    Mind mind = perso.brain.mind;
                    if (mind.dsgMem != null && mind.dsgMem.dsgVar != null)
                    {
                        if (param < mind.dsgMem.dsgVar.dsgVarInfos.Length)
                        {
                            return(mind.dsgMem.dsgVar.dsgVarInfos[param].NiceVariableName);
                        }
                    }
                    else if (mind.AI_model != null && mind.AI_model.dsgVar != null)
                    {
                        if (param < mind.AI_model.dsgVar.dsgVarInfos.Length)
                        {
                            return(mind.AI_model.dsgVar.dsgVarInfos[param].NiceVariableName);
                        }
                    }
                }
                return("dsgVar_" + param);

            case ScriptNode.NodeType.Constant:
                if (advanced)
                {
                    return("Constant: " + BitConverter.ToInt32(BitConverter.GetBytes(param), 0));
                }
                return(BitConverter.ToInt32(BitConverter.GetBytes(param), 0).ToString());

            case ScriptNode.NodeType.Real:
                NumberFormatInfo nfi = new NumberFormatInfo()
                {
                    NumberDecimalSeparator = "."
                };
                if (advanced)
                {
                    return("Real: " + BitConverter.ToSingle(BitConverter.GetBytes(param), 0).ToString(nfi));
                }
                return(BitConverter.ToSingle(BitConverter.GetBytes(param), 0).ToString(nfi) + "f");

            case ScriptNode.NodeType.Button:     // Button/entryaction
                EntryAction ea = EntryAction.FromOffset(param_ptr);

                if (ea == null)
                {
                    return("ERR_ENTRYACTION_NOTFOUND");
                }

                string eaName = (advanced ? ea.ToString() : ea.ToBasicString());
                if (advanced)
                {
                    return("Button: " + eaName + "(" + param_ptr + ")");
                }

                if (!ts.expandEntryActions && ea != null)
                {
                    return("\"" + ea.ExportName + "\"");
                }
                return(eaName);

            case ScriptNode.NodeType.ConstantVector:
                return("Constant Vector: " + "0x" + param.ToString("x8"));    // TODO: get from address

            case ScriptNode.NodeType.Vector:
                return("new Vector3");    // TODO: same

            case ScriptNode.NodeType.Mask:
                mask = (short)param;     // TODO: as short
                if (advanced)
                {
                    return("Mask: " + (mask).ToString("x4"));
                }
                if (ts.exportMode)
                {
                    return("\"" + (mask).ToString("x4") + "\"");
                }
                return("Mask(" + (mask).ToString("x4") + ")");

            case ScriptNode.NodeType.ModuleRef:
                if (advanced)
                {
                    return("ModuleRef: " + "0x" + (param).ToString("x8"));
                }
                return("GetModule(" + (int)param + ")");

            case ScriptNode.NodeType.DsgVarId:
                if (advanced)
                {
                    return("DsgVarId: " + "0x" + (param).ToString("x8"));
                }
                return("DsgVarId(" + param + ")");

            case ScriptNode.NodeType.String:
                string str = "ERR_STRING_NOTFOUND";
                if (l.strings.ContainsKey(param_ptr))
                {
                    str = l.strings[param_ptr];
                }
                if (advanced)
                {
                    return("String: " + param_ptr + " (" + str + ")");
                }
                return("\"" + str + "\"");

            case ScriptNode.NodeType.LipsSynchroRef:
                return("LipsSynchroRef: " + param_ptr);

            case ScriptNode.NodeType.FamilyRef:
                if (advanced)
                {
                    return("FamilyRef: " + param_ptr);
                }
                Family f = Family.FromOffset(param_ptr);
                if (f != null)
                {
                    return("GetFamily(\"" + f.name + "\")");
                }
                else
                {
                    return("Family.FromOffset(\"" + param_ptr + "\")");
                }

            case ScriptNode.NodeType.PersoRef:
                Perso argPerso = Perso.FromOffset(param_ptr);
                if (argPerso != null && perso != null && argPerso.offset == perso.offset)
                {
                    if (advanced)
                    {
                        return("PersoRef: this");
                    }
                    return("this");
                }
                string persoName = argPerso == null ? "ERR_PERSO_NOTFOUND" : argPerso.fullName;
                if (advanced)
                {
                    return("PersoRef: " + param_ptr + " (" + persoName + ")");
                }
                if (argPerso?.brain?.mind?.AI_model != null)
                {
                    AIModel aiModel = argPerso.brain.mind.AI_model;
                    // Make sure to add a cast in case the AI Model is accessed
                    return("((" + aiModel.name + ")GetPerso(\"" + argPerso.namePerso + "\"))");
                }
                return("GetPerso(\"" + argPerso.namePerso + "\")");

            case ScriptNode.NodeType.ActionRef:
                State  state     = State.FromOffset(param_ptr);
                string stateName = state == null ? "ERR_STATE_NOTFOUND" : state.ShortName;
                if (advanced)
                {
                    return("ActionRef: " + param_ptr + " " + stateName);
                }
                if (ts.useStateIndex)
                {
                    return("GetAction(" + state.index.ToString() + ")");
                }
                return(stateName);

            case ScriptNode.NodeType.SuperObjectRef:
                if (advanced)
                {
                    return("SuperObjectRef: " + param_ptr);
                }
                SuperObject so = SuperObject.FromOffset(param_ptr);
                if (so != null)
                {
                    return("GetSuperObject(\"" + so.Gao.name + "\")");
                }
                else
                {
                    return("SuperObject.FromOffset(\"" + param_ptr + "\")");
                }

            case ScriptNode.NodeType.WayPointRef:
                if (advanced)
                {
                    return("WayPointRef: " + param_ptr);
                }
                return("WayPoint.FromOffset(\"" + param_ptr + "\")");

            case ScriptNode.NodeType.TextRef:
                if (l.localization == null)
                {
                    return("TextRef");
                }
                if (advanced)
                {
                    return("TextRef: " + param + " (" + l.localization.GetTextForHandleAndLanguageID((int)param, 0) + ")");
                }
                if (ts.expandStrings)
                {
                    return("\"" + l.localization.GetTextForHandleAndLanguageID((int)param, 0) + "\"");    // Preview in english
                }
                else
                {
                    return("new TextReference(" + (int)param + ")");
                }

            case ScriptNode.NodeType.ComportRef:
                Behavior comportRef = Behavior.FromOffset(param_ptr);

                if (comportRef == null)
                {
                    if (advanced)
                    {
                        return("ComportRef: " + param_ptr + " (null)");
                    }
                    return("null");
                }
                else
                {
                    return(comportRef.ShortName);
                    //string type = comportRef.type == Behavior.BehaviorType.Normal ? "normalBehavior" : "reflexBehavior";
                    //return type + "[" + script.behaviorOrMacro.aiModel.GetBehaviorIndex(comportRef) + "]";
                }

            case ScriptNode.NodeType.SoundEventRef:
                if (advanced)
                {
                    return("SoundEventRef: " + (int)param);
                }
                return("SoundEvent.FromID(0x" + ((int)param).ToString("X8") + ")");

            case ScriptNode.NodeType.ObjectTableRef:
                if (advanced)
                {
                    return("ObjectTableRef: " + param_ptr);
                }

                if (ts.useHashIdentifiers)
                {
                    string objectListJson = ObjectList.FromOffset(param_ptr).ToJSON();

                    string objectListHash = HashUtils.MD5Hash(objectListJson);
                    return("ObjectList.FromHash(\"" + objectListHash + "\")");
                }

                return("ObjectTable.FromOffset(\"" + param_ptr + "\")");

            case ScriptNode.NodeType.GameMaterialRef:
                if (advanced)
                {
                    return("GameMaterialRef: " + param_ptr);
                }
                if (ts.useHashIdentifiers)
                {
                    string gmtJson = GameMaterial.FromOffset(param_ptr).ToJSON();

                    string gmtHash = HashUtils.MD5Hash(gmtJson);
                    return("GameMaterial.FromHash(\"" + gmtHash + "\")");
                }
                return("GameMaterial.FromOffset(\"" + param_ptr + "\")");

            case ScriptNode.NodeType.ParticleGenerator:
                return("ParticleGenerator: " + "0x" + (param).ToString("x8"));

            case ScriptNode.NodeType.VisualMaterial:
                if (advanced)
                {
                    return("VisualMaterial: " + param_ptr);
                }

                if (ts.useHashIdentifiers)
                {
                    string vmtJson = VisualMaterial.FromOffset(param_ptr).ToJSON();

                    string vmtHash = HashUtils.MD5Hash(vmtJson);
                    return("VisualMaterial.FromHash(\"" + vmtHash + "\")");
                }

                return("VisualMaterial.FromOffset(\"" + param_ptr + "\")");

            case ScriptNode.NodeType.ModelRef:                     // ModelCast
                if (advanced)
                {
                    return("AIModel: " + param_ptr);
                }
                AIModel model = AIModel.FromOffset(param_ptr);
                return(model != null ? model.name : "null");

            case ScriptNode.NodeType.DataType42:
                if (advanced)
                {
                    return("EvalDataType42: " + "0x" + (param).ToString("x8"));
                }
                return("EvalDataType42(" + "0x" + (param).ToString("x8") + ")");

            case ScriptNode.NodeType.CustomBits:
                if (advanced)
                {
                    return("CustomBits: " + "0x" + (param).ToString("x8"));
                }
                if (ts.exportMode)
                {
                    return("0x" + (param).ToString("x8"));
                }
                return("CustomBits(" + "0x" + (param).ToString("x8") + ")");

            case ScriptNode.NodeType.Caps:
                if (advanced)
                {
                    return("Caps: " + "0x" + (param).ToString("x8"));
                }
                if (ts.exportMode)
                {
                    return("0x" + (param).ToString("x8"));
                }
                return("Caps(" + "0x" + (param).ToString("x8") + ")");

            case ScriptNode.NodeType.SubRoutine:
                if (advanced)
                {
                    return("Eval SubRoutine: " + param_ptr);
                }
                Macro macro = Macro.FromOffset(param_ptr);
                if (macro == null)
                {
                    return("null");
                }
                return("evalMacro(" + macro.ShortName + ");");

            case ScriptNode.NodeType.Null:
                return("null");

            case ScriptNode.NodeType.GraphRef:
                if (advanced)
                {
                    return("Graph: " + "0x" + (param).ToString("x8"));
                }
                return("Graph.FromOffset(\"" + param_ptr + "\")");
            }

            return("unknown");
        }
Esempio n. 24
0
        public int PullKeysFromFile()
        {
            var exeData = File.ReadAllBytes(FilePath);

            int foundCount = 0;

            for (int i = 0; i < exeData.Length - 32; i++)
            {
                byte[]          hash32 = HashUtils.ComputeSha256(exeData, i, 32);
                DurangoKeyEntry keyEntry;
                foreach (var kvp in DurangoKeys.GetAllXvdSigningKeys())
                {
                    string keyName = kvp.Key;
                    keyEntry = kvp.Value;

                    if (keyEntry.HasKeyData)
                    {
                        continue;
                    }
                    if (keyEntry.DataSize > exeData.Length - i)
                    {
                        continue;
                    }

                    byte[] signKeyHash = HashUtils.ComputeSha256(exeData, i, keyEntry.DataSize);

                    if (!keyEntry.SHA256Hash.IsEqualTo(signKeyHash))
                    {
                        continue;
                    }

                    Console.WriteLine($"Found {keyEntry.KeyType} \"{keyName}\" at offset 0x{i:X}");

                    byte[] keyData = new byte[keyEntry.DataSize];
                    Array.Copy(exeData, i, keyData, 0, keyData.Length);

                    DurangoKeys.LoadSignKey(keyName, keyData, out bool newKey, out keyName);
                    foundCount++;
                }

                foreach (var kvp in DurangoKeys.GetAllODK())
                {
                    OdkIndex keyId = kvp.Key;
                    keyEntry = kvp.Value;

                    if (keyEntry.HasKeyData)
                    {
                        continue;
                    }

                    if (!hash32.IsEqualTo(keyEntry.SHA256Hash))
                    {
                        continue;
                    }

                    Console.WriteLine($"Found {keyEntry.KeyType} \"{keyId}\" at offset 0x{i:X}");

                    byte[] keyData = new byte[keyEntry.DataSize];
                    Array.Copy(exeData, i, keyData, 0, keyData.Length);

                    DurangoKeys.LoadOdkKey(keyId, keyData, out bool newKey);
                    foundCount++;
                }

                foreach (var kvp in DurangoKeys.GetAllCIK())
                {
                    Guid keyId = kvp.Key;
                    keyEntry = kvp.Value;

                    if (keyEntry.HasKeyData)
                    {
                        continue;
                    }

                    if (!hash32.IsEqualTo(keyEntry.SHA256Hash))
                    {
                        continue;
                    }

                    Console.WriteLine($"Found {keyEntry.KeyType} \"{keyId}\" at offset 0x{i:X}");

                    byte[] keyData = new byte[0x10 + keyEntry.DataSize];
                    Array.Copy(keyId.ToByteArray(), 0, keyData, 0, 0x10);
                    Array.Copy(exeData, i, keyData, 0x10, keyEntry.DataSize);

                    DurangoKeys.LoadCikKeys(keyData, out Guid[] keyGuid);
                    foundCount++;
                }
            }

            return(foundCount);
        }
Esempio n. 25
0
 public void ObjectContentHashOnto(ref int lastHash)
 {
     HashUtils.ContentHashOnto(this.AbilityName, ref lastHash);
     HashUtils.ContentHashOnto(this.AbilityNameSub, ref lastHash);
     if (this.ChargeMissleAmount != null)
     {
         foreach (int num in this.ChargeMissleAmount)
         {
             HashUtils.ContentHashOnto(num, ref lastHash);
         }
     }
     if (base.ChargeLoopDurations != null)
     {
         foreach (float num3 in base.ChargeLoopDurations)
         {
             HashUtils.ContentHashOnto(num3, ref lastHash);
         }
     }
     if (base.ChargeTimeRatio != null)
     {
         HashUtils.ContentHashOnto(base.ChargeTimeRatio.isDynamic, ref lastHash);
         HashUtils.ContentHashOnto(base.ChargeTimeRatio.fixedValue, ref lastHash);
         HashUtils.ContentHashOnto(base.ChargeTimeRatio.dynamicKey, ref lastHash);
     }
     HashUtils.ContentHashOnto(base.AllowHoldLockDirection, ref lastHash);
     HashUtils.ContentHashOnto(base.SkillButtonID, ref lastHash);
     HashUtils.ContentHashOnto(base.NextLoopTriggerID, ref lastHash);
     HashUtils.ContentHashOnto(base.AfterSkillTriggerID, ref lastHash);
     if (base.BeforeSkillIDs != null)
     {
         foreach (string str in base.BeforeSkillIDs)
         {
             HashUtils.ContentHashOnto(str, ref lastHash);
         }
     }
     if (base.ChargeLoopSkillIDs != null)
     {
         foreach (string str2 in base.ChargeLoopSkillIDs)
         {
             HashUtils.ContentHashOnto(str2, ref lastHash);
         }
     }
     if (base.AfterSkillIDs != null)
     {
         foreach (string str3 in base.AfterSkillIDs)
         {
             HashUtils.ContentHashOnto(str3, ref lastHash);
         }
     }
     if (base.TransientSkillIDs != null)
     {
         foreach (string str4 in base.TransientSkillIDs)
         {
             HashUtils.ContentHashOnto(str4, ref lastHash);
         }
     }
     if (base.ChargeSubTargetAmount != null)
     {
         foreach (int num9 in base.ChargeSubTargetAmount)
         {
             HashUtils.ContentHashOnto(num9, ref lastHash);
         }
     }
     HashUtils.ContentHashOnto(base.SubTargetModifierName, ref lastHash);
     HashUtils.ContentHashOnto(base.ChargeTimeRatioAIKey, ref lastHash);
     if (base.ChargeLoopEffects != null)
     {
         foreach (MixinEffect effect in base.ChargeLoopEffects)
         {
             HashUtils.ContentHashOnto(effect.EffectPattern, ref lastHash);
             HashUtils.ContentHashOnto(effect.AudioPattern, ref lastHash);
         }
     }
     if (base.ChargeSwitchEffects != null)
     {
         foreach (MixinEffect effect2 in base.ChargeSwitchEffects)
         {
             HashUtils.ContentHashOnto(effect2.EffectPattern, ref lastHash);
             HashUtils.ContentHashOnto(effect2.AudioPattern, ref lastHash);
         }
     }
     if (base.ChargeLoopAudioPatterns != null)
     {
         foreach (string str5 in base.ChargeLoopAudioPatterns)
         {
             HashUtils.ContentHashOnto(str5, ref lastHash);
         }
     }
     if (base.ChargeSwitchAudioPatterns != null)
     {
         foreach (string str6 in base.ChargeSwitchAudioPatterns)
         {
             HashUtils.ContentHashOnto(str6, ref lastHash);
         }
     }
     HashUtils.ContentHashOnto(base.ImmediatelyDetachLoopEffect, ref lastHash);
     HashUtils.ContentHashOnto(base.ChargeSwitchWindow, ref lastHash);
     HashUtils.ContentHashOnto(base.DisallowReleaseButtonInBS, ref lastHash);
 }
Esempio n. 26
0
 public void ObjectContentHashOnto(ref int lastHash)
 {
     HashUtils.ContentHashOnto(this.Param, ref lastHash);
 }
Esempio n. 27
0
 public Config GetConfig(string name, ConfigType cfgType)
 {
     CheckValidity();
     return(GetConfig(HashUtils.GetFNV(name), cfgType));
 }
Esempio n. 28
0
 public override int GetHashCode() => HashUtils.Combine(Text, HashUtils.Combine(Start, EndIncludingLineBreak));
Esempio n. 29
0
        /*
         * public static uint GetUIntRep(string name)
         * {
         *  uint result = 0;
         *  byte i = 0;
         *  foreach (char c in name)
         *  {
         *      result |= (((uint) c) << (8 * i));
         *      i++;
         *  }
         *  return result;
         * }
         *
         *
         * public static void PrintUIntChars(uint enc)
         * {
         *  for (int i = 0; i < 4; i++)
         *  {
         *      char c = (char) ((0x000000ff) & (enc >> (i * 8)));
         *      Console.Write("{0}", c);
         *  }
         *  Console.Write("\n");
         * }
         */


        public static int Main(string[] args)
        {
            TestBench testBench = new TestBench();

            Container container = testBench.LoadAndTrackContainer(new List <string>(args), out List <Level> levels);

            /*
             * string tstFX = "com_sfx_ord_flame";
             * var fxConfig = container.FindConfig(ConfigType.Effect, tstFX);
             *
             * Field lEmitter = fxConfig.GetField("ParticleEmitter");
             *
             *
             * Console.WriteLine("Num particles: {0}", (int) lEmitter.scope.GetField("MaxParticles").GetVec2().Y);
             *
             * Field lTransformer = lEmitter.scope.GetField("Transformer");
             * Field lSpawner = lEmitter.scope.GetField("Spawner");
             *
             * if (lTransformer == null)
             * {
             *  Console.WriteLine("Transformer is null!"); //return 0;
             * }
             *
             * if (lSpawner == null)
             * {
             *  Console.WriteLine("Spawner is null!"); //return 0;
             * }
             *
             * Console.WriteLine("Start size: {0}", lSpawner.scope.GetField("Size").GetVec3().Z);
             * //Console.WriteLine("Lifetime: {0}", lTransformer.GetChildConfig("Position").GetFloat("LifeTime"));
             *
             * //return 1;
             */

            Level level = levels[0];

            if (level == null)
            {
                return(-1);
            }

            World[] worlds = level.GetWrappers <World>();
            foreach (World world in worlds)
            {
                Console.WriteLine("\nWorld: {0}", world.name);

                //Test for crash...
                Config skydome = container.FindConfig(ConfigType.Skydome, world.skydomeName);
                if (skydome != null)
                {
                    Console.WriteLine("Skydome: {0} (0x{1:x})", world.skydomeName, HashUtils.GetFNV(world.name));
                    Field domeInfo = skydome.GetField("DomeInfo");
                    if (domeInfo != null)
                    {
                        List <Field> domeModelConfigs = domeInfo.scope.GetFields("DomeModel");
                        foreach (Field domeModelConfig in domeModelConfigs)
                        {
                            string geometryName = domeModelConfig.scope.GetField("Geometry").GetString();
                            Console.WriteLine("  Dome geometry: " + geometryName);
                        }
                    }
                }

                Config lighting = level.GetConfig(world.name, ConfigType.Lighting);
                if (lighting == null)
                {
                    continue;
                }
                Console.WriteLine("Lighting: ");

                uint         lightHash = HashUtils.GetFNV("Light");
                List <Field> lights    = lighting.GetFields(lightHash);

                Console.WriteLine("\n  Lights: ");
                int i = 0;
                foreach (Field light in lights)
                {
                    Console.WriteLine("\n\tName: " + light.GetString());
                    Console.WriteLine("\tColor: " + light.scope.GetField("Color").GetVec3().ToString());
                    Console.WriteLine("\tType: " + light.scope.GetField("Type").GetFloat().ToString());
                }

                Field globalLighting = lighting.GetField("GlobalLights");
                if (globalLighting == null)
                {
                    continue;
                }

                Console.WriteLine("\n  Global lighting config: ");
                Console.WriteLine("\tLight 1: " + globalLighting.scope.GetField("Light1").GetString());
                Console.WriteLine("\tLight 2: " + globalLighting.scope.GetField("Light2").GetString());
                Console.WriteLine("\tTop Ambient Color: " + globalLighting.scope.GetField("Top").GetVec3().ToString());
                Console.WriteLine("\tBottom Ambient Color: " + globalLighting.scope.GetField("Bottom").GetVec3().ToString());
            }


            List <Config> effects = level.GetConfigs(ConfigType.Effect);

            Console.WriteLine("\nEffects: ");
            foreach (Config effect in effects)
            {
                Console.WriteLine("  Effect name hash: 0x{0:x}", effect.name);
                //Console.WriteLine("\tEmitter name: {0}", (effect.IsPropertySet("ParticleEmitter") ? effect.GetString("ParticleEmitter") : "No emitter set!"));
            }


            List <Config> paths = level.GetConfigs(ConfigType.Path);

            Console.WriteLine("\nPath configs: ");
            foreach (Config path in paths)
            {
                Console.WriteLine("  Path config: 0x{0:x}", path.name);
                int i = 0;

                List <Field> pathNames = path.GetFields("Path");

                foreach (Field pathName in pathNames)
                {
                    Console.WriteLine("\tPath {0} has {1} nodes.", pathName.GetString(), pathName.scope.GetField("Node").GetFloat());
                }
            }

            container.Delete();

            return(1);
        }
 public string GetNonKeyHash(HashAlgorithm hashAlgorithm)
 {
     return(HashUtils.ComputeAggregationHash(hashAlgorithm, this.Value, this.AnotherValue, this.LastChangeTime));
 }