Example #1
0
        public void Load(ZPackage pkg)
        {
            this.m_isLoading = true;
            //this.UnequipAllItems();
            int num1 = pkg.ReadInt();

            if (num1 >= 7)
            {
                this.SetMaxHealth(pkg.ReadSingle(), false);
            }
            float num2      = pkg.ReadSingle();
            float maxHealth = this.GetMaxHealth();

            if ((double)num2 <= 0.0 || (double)num2 > (double)maxHealth || float.IsNaN(num2))
            {
                num2 = maxHealth;
            }
            this.SetHealth(num2);
            if (num1 >= 10)
            {
                float stamina = pkg.ReadSingle();
                this.SetMaxStamina(stamina, false);
                this.m_stamina = stamina;
            }
            if (num1 >= 8)
            {
                this.m_firstSpawn = pkg.ReadBool();
            }
            if (num1 >= 20)
            {
                this.m_timeSinceDeath = pkg.ReadSingle();
            }
            if (num1 >= 23)
            {
                this.SetGuardianPower(pkg.ReadString());
            }
            if (num1 >= 24)
            {
                this.m_guardianPowerCooldown = pkg.ReadSingle();
            }
            if (num1 == 2)
            {
                pkg.ReadZDOID();
            }
            this.m_inventory.Load(pkg);
            int num3 = pkg.ReadInt();

            for (int index = 0; index < num3; ++index)
            {
                this.m_knownRecipes.Add(pkg.ReadString());
            }
            if (num1 < 15)
            {
                int num4 = pkg.ReadInt();
                for (int index = 0; index < num4; ++index)
                {
                    pkg.ReadString();
                }
            }
            else
            {
                int num4 = pkg.ReadInt();
                for (int index = 0; index < num4; ++index)
                {
                    this.m_knownStations.Add(pkg.ReadString(), pkg.ReadInt());
                }
            }
            int num5 = pkg.ReadInt();

            for (int index = 0; index < num5; ++index)
            {
                this.m_knownMaterial.Add(pkg.ReadString());
            }
            if (num1 < 19 || num1 >= 21)
            {
                int num4 = pkg.ReadInt();
                for (int index = 0; index < num4; ++index)
                {
                    this.m_shownTutorials.Add(pkg.ReadString());
                }
            }
            if (num1 >= 6)
            {
                int num4 = pkg.ReadInt();
                for (int index = 0; index < num4; ++index)
                {
                    this.m_uniques.Add(pkg.ReadString());
                }
            }
            if (num1 >= 9)
            {
                int num4 = pkg.ReadInt();
                for (int index = 0; index < num4; ++index)
                {
                    this.m_trophies.Add(pkg.ReadString());
                }
            }
            if (num1 >= 18)
            {
                int num4 = pkg.ReadInt();
                for (int index = 0; index < num4; ++index)
                {
                    this.m_knownBiome.Add((Biome)pkg.ReadInt());
                }
            }
            if (num1 >= 22)
            {
                int num4 = pkg.ReadInt();
                for (int index = 0; index < num4; ++index)
                {
                    this.m_knownTexts.Add(pkg.ReadString(), pkg.ReadString());
                }
            }
            //=========================================
            if (num1 >= 4)
            {
                string name = pkg.ReadString();
                string hair = pkg.ReadString();
                this.SetBeard(name);
                this.SetHair(hair);
            }
            if (num1 >= 5)
            {
                Vector3 color1 = pkg.ReadVector3();
                Vector3 color2 = pkg.ReadVector3();
                this.SetSkinColor(color1);
                this.SetHairColor(color2);
            }
            if (num1 >= 11)
            {
                this.SetPlayerModel(pkg.ReadInt());
            }
            if (num1 >= 12)
            {
                this.m_foods.Clear();
                int num4 = pkg.ReadInt();
                for (int index = 0; index < num4; ++index)
                {
                    if (num1 >= 14)
                    {
                        Player.Food food = new Player.Food();
                        food.m_name   = pkg.ReadString();
                        food.m_health = pkg.ReadSingle();
                        if (num1 >= 16)
                        {
                            food.m_stamina = pkg.ReadSingle();
                        }
                        //GameObject itemPrefab = ObjectDB.instance.GetItemPrefab(food.m_name);
                        //if ((UnityEngine.Object)itemPrefab == (UnityEngine.Object)null)
                        //{
                        //    ZLog.LogWarning((object)("FAiled to find food item " + food.m_name));
                        //}
                        //else
                        {
                            //food.m_item = itemPrefab.GetComponent<ItemDrop>().m_itemData;
                            this.m_foods.Add(food);
                        }
                    }
                    else
                    {
                        pkg.ReadString();
                        double num6  = (double)pkg.ReadSingle();
                        double num7  = (double)pkg.ReadSingle();
                        double num8  = (double)pkg.ReadSingle();
                        double num9  = (double)pkg.ReadSingle();
                        double num10 = (double)pkg.ReadSingle();
                        double num11 = (double)pkg.ReadSingle();
                        if (num1 >= 13)
                        {
                            double num12 = (double)pkg.ReadSingle();
                        }
                    }
                }
            }
            if (num1 >= 17)
            {
                this.Skills.Load(pkg);
            }
            this.m_isLoading = false;
            //this.UpdateAvailablePiecesList();
            //this.EquipIventoryItems();
        }