public static void LoadDatabase() { if (CharacterDB.mDBLoaded) { return; } CharacterDB.mDBLoaded = true; string s = AssetManager.LoadTextData(CharacterDB.DatabasePath); if (string.IsNullOrEmpty(s)) { Debug.LogError((object)"Failed to load CharacterDB"); } else { char[] chArray = new char[1] { '\t' }; CharacterDB.mCharacters.Clear(); using (StringReader stringReader = new StringReader(s)) { string str1 = stringReader.ReadLine(); if (string.IsNullOrEmpty(str1)) { return; } string[] array = str1.Split(chArray); int index1 = Array.IndexOf <string>(array, "ID"); int index2 = Array.IndexOf <string>(array, "JOB"); int index3 = Array.IndexOf <string>(array, "BODY"); int index4 = Array.IndexOf <string>(array, "BODY_TEXTURE"); int index5 = Array.IndexOf <string>(array, "BODY_ATTACHMENT"); int index6 = Array.IndexOf <string>(array, "HEAD"); int index7 = Array.IndexOf <string>(array, "HEAD_ATTACHMENT"); int index8 = Array.IndexOf <string>(array, "HAIR"); int index9 = Array.IndexOf <string>(array, "HAIR_COLOR1"); int index10 = Array.IndexOf <string>(array, "HAIR_COLOR2"); int index11 = Array.IndexOf <string>(array, "PREFIX"); int index12 = Array.IndexOf <string>(array, "MOVABLE"); string str2; while ((str2 = stringReader.ReadLine()) != null) { string[] strArray = str2.Split(chArray); if (str2.Length > 0) { CharacterDB.Character character = CharacterDB.ReserveCharacter(strArray[index1]); CharacterDB.Job job = new CharacterDB.Job(); job.JobID = strArray[index2]; job.HashID = job.JobID.GetHashCode(); job.HairName = strArray[index8]; job.BodyName = strArray[index3]; job.BodyTextureName = strArray[index4]; job.BodyAttachmentName = strArray[index5]; job.HeadName = strArray[index6]; job.HeadAttachmentName = strArray[index7]; job.HairColor0 = GameUtility.ParseColor(strArray[index9]); job.HairColor1 = GameUtility.ParseColor(strArray[index10]); job.Movable = true; if (index11 != -1) { job.AssetPrefix = strArray[index11]; } int result; if (index12 != -1 && int.TryParse(strArray[index12], out result)) { job.Movable = result != 0; } character.Jobs.Add(job); } } } } }