Terraria.IO.WorldFile.LoadHeader C# (CSharp) Method

LoadHeader() private static method

private static LoadHeader ( BinaryReader reader ) : void
reader System.IO.BinaryReader
return void
        private static void LoadHeader(BinaryReader reader)
        {
            int versionNumber = WorldFile.versionNumber;
            Main.worldName = reader.ReadString();
            Main.worldID = reader.ReadInt32();
            Main.leftWorld = reader.ReadInt32();
            Main.rightWorld = reader.ReadInt32();
            Main.topWorld = reader.ReadInt32();
            Main.bottomWorld = reader.ReadInt32();
            Main.maxTilesY = reader.ReadInt32();
            Main.maxTilesX = reader.ReadInt32();
            WorldGen.clearWorld();
            if (versionNumber >= 0x70)
            {
                Main.expertMode = reader.ReadBoolean();
            }
            else
            {
                Main.expertMode = false;
            }
            if (versionNumber >= 0x8d)
            {
                Main.ActiveWorldFileData.CreationTime = DateTime.FromBinary(reader.ReadInt64());
            }
            Main.moonType = reader.ReadByte();
            Main.treeX[0] = reader.ReadInt32();
            Main.treeX[1] = reader.ReadInt32();
            Main.treeX[2] = reader.ReadInt32();
            Main.treeStyle[0] = reader.ReadInt32();
            Main.treeStyle[1] = reader.ReadInt32();
            Main.treeStyle[2] = reader.ReadInt32();
            Main.treeStyle[3] = reader.ReadInt32();
            Main.caveBackX[0] = reader.ReadInt32();
            Main.caveBackX[1] = reader.ReadInt32();
            Main.caveBackX[2] = reader.ReadInt32();
            Main.caveBackStyle[0] = reader.ReadInt32();
            Main.caveBackStyle[1] = reader.ReadInt32();
            Main.caveBackStyle[2] = reader.ReadInt32();
            Main.caveBackStyle[3] = reader.ReadInt32();
            Main.iceBackStyle = reader.ReadInt32();
            Main.jungleBackStyle = reader.ReadInt32();
            Main.hellBackStyle = reader.ReadInt32();
            Main.spawnTileX = reader.ReadInt32();
            Main.spawnTileY = reader.ReadInt32();
            Main.worldSurface = reader.ReadDouble();
            Main.rockLayer = reader.ReadDouble();
            tempTime = reader.ReadDouble();
            tempDayTime = reader.ReadBoolean();
            tempMoonPhase = reader.ReadInt32();
            tempBloodMoon = reader.ReadBoolean();
            tempEclipse = reader.ReadBoolean();
            Main.eclipse = tempEclipse;
            Main.dungeonX = reader.ReadInt32();
            Main.dungeonY = reader.ReadInt32();
            WorldGen.crimson = reader.ReadBoolean();
            NPC.downedBoss1 = reader.ReadBoolean();
            NPC.downedBoss2 = reader.ReadBoolean();
            NPC.downedBoss3 = reader.ReadBoolean();
            NPC.downedQueenBee = reader.ReadBoolean();
            NPC.downedMechBoss1 = reader.ReadBoolean();
            NPC.downedMechBoss2 = reader.ReadBoolean();
            NPC.downedMechBoss3 = reader.ReadBoolean();
            NPC.downedMechBossAny = reader.ReadBoolean();
            NPC.downedPlantBoss = reader.ReadBoolean();
            NPC.downedGolemBoss = reader.ReadBoolean();
            if (versionNumber >= 0x76)
            {
                NPC.downedSlimeKing = reader.ReadBoolean();
            }
            NPC.savedGoblin = reader.ReadBoolean();
            NPC.savedWizard = reader.ReadBoolean();
            NPC.savedMech = reader.ReadBoolean();
            NPC.downedGoblins = reader.ReadBoolean();
            NPC.downedClown = reader.ReadBoolean();
            NPC.downedFrost = reader.ReadBoolean();
            NPC.downedPirates = reader.ReadBoolean();
            WorldGen.shadowOrbSmashed = reader.ReadBoolean();
            WorldGen.spawnMeteor = reader.ReadBoolean();
            WorldGen.shadowOrbCount = reader.ReadByte();
            WorldGen.altarCount = reader.ReadInt32();
            Main.hardMode = reader.ReadBoolean();
            Main.invasionDelay = reader.ReadInt32();
            Main.invasionSize = reader.ReadInt32();
            Main.invasionType = reader.ReadInt32();
            Main.invasionX = reader.ReadDouble();
            if (versionNumber >= 0x76)
            {
                Main.slimeRainTime = reader.ReadDouble();
            }
            if (versionNumber >= 0x71)
            {
                Main.sundialCooldown = reader.ReadByte();
            }
            tempRaining = reader.ReadBoolean();
            tempRainTime = reader.ReadInt32();
            tempMaxRain = reader.ReadSingle();
            WorldGen.oreTier1 = reader.ReadInt32();
            WorldGen.oreTier2 = reader.ReadInt32();
            WorldGen.oreTier3 = reader.ReadInt32();
            WorldGen.setBG(0, reader.ReadByte());
            WorldGen.setBG(1, reader.ReadByte());
            WorldGen.setBG(2, reader.ReadByte());
            WorldGen.setBG(3, reader.ReadByte());
            WorldGen.setBG(4, reader.ReadByte());
            WorldGen.setBG(5, reader.ReadByte());
            WorldGen.setBG(6, reader.ReadByte());
            WorldGen.setBG(7, reader.ReadByte());
            Main.cloudBGActive = reader.ReadInt32();
            Main.cloudBGAlpha = (Main.cloudBGActive < 1.0) ? 0f : 1f;
            Main.cloudBGActive = -WorldGen.genRand.Next(0x21c0, 0x15180);
            Main.numClouds = reader.ReadInt16();
            Main.windSpeedSet = reader.ReadSingle();
            Main.windSpeed = Main.windSpeedSet;
            if (versionNumber >= 0x5f)
            {
                Main.anglerWhoFinishedToday.Clear();
                for (int i = reader.ReadInt32(); i > 0; i--)
                {
                    Main.anglerWhoFinishedToday.Add(reader.ReadString());
                }
                if (versionNumber >= 0x63)
                {
                    NPC.savedAngler = reader.ReadBoolean();
                    if (versionNumber >= 0x65)
                    {
                        Main.anglerQuest = reader.ReadInt32();
                        if (versionNumber >= 0x68)
                        {
                            NPC.savedStylist = reader.ReadBoolean();
                            if (versionNumber >= 0x81)
                            {
                                NPC.savedTaxCollector = reader.ReadBoolean();
                            }
                            if (versionNumber < 0x6b)
                            {
                                if ((Main.invasionType > 0) && (Main.invasionSize > 0))
                                {
                                    Main.FakeLoadInvasionStart();
                                }
                            }
                            else
                            {
                                Main.invasionSizeStart = reader.ReadInt32();
                            }
                            if (versionNumber < 0x6c)
                            {
                                tempCultistDelay = 0x15180;
                            }
                            else
                            {
                                tempCultistDelay = reader.ReadInt32();
                            }
                            if (versionNumber >= 0x6d)
                            {
                                int num3 = reader.ReadInt16();
                                for (int j = 0; j < num3; j++)
                                {
                                    if (j < 540)
                                    {
                                        NPC.killCount[j] = reader.ReadInt32();
                                    }
                                    else
                                    {
                                        reader.ReadInt32();
                                    }
                                }
                                if (versionNumber >= 0x80)
                                {
                                    Main.fastForwardTime = reader.ReadBoolean();
                                    Main.UpdateSundial();
                                    if (versionNumber >= 0x83)
                                    {
                                        NPC.downedFishron = reader.ReadBoolean();
                                        NPC.downedMartians = reader.ReadBoolean();
                                        NPC.downedAncientCultist = reader.ReadBoolean();
                                        NPC.downedMoonlord = reader.ReadBoolean();
                                        NPC.downedHalloweenKing = reader.ReadBoolean();
                                        NPC.downedHalloweenTree = reader.ReadBoolean();
                                        NPC.downedChristmasIceQueen = reader.ReadBoolean();
                                        NPC.downedChristmasSantank = reader.ReadBoolean();
                                        NPC.downedChristmasTree = reader.ReadBoolean();
                                        if (versionNumber >= 140)
                                        {
                                            NPC.downedTowerSolar = reader.ReadBoolean();
                                            NPC.downedTowerVortex = reader.ReadBoolean();
                                            NPC.downedTowerNebula = reader.ReadBoolean();
                                            NPC.downedTowerStardust = reader.ReadBoolean();
                                            NPC.TowerActiveSolar = reader.ReadBoolean();
                                            NPC.TowerActiveVortex = reader.ReadBoolean();
                                            NPC.TowerActiveNebula = reader.ReadBoolean();
                                            NPC.TowerActiveStardust = reader.ReadBoolean();
                                            NPC.LunarApocalypseIsUp = reader.ReadBoolean();
                                            if (NPC.TowerActiveSolar)
                                            {
                                                NPC.ShieldStrengthTowerSolar = NPC.ShieldStrengthTowerMax;
                                            }
                                            if (NPC.TowerActiveVortex)
                                            {
                                                NPC.ShieldStrengthTowerVortex = NPC.ShieldStrengthTowerMax;
                                            }
                                            if (NPC.TowerActiveNebula)
                                            {
                                                NPC.ShieldStrengthTowerNebula = NPC.ShieldStrengthTowerMax;
                                            }
                                            if (NPC.TowerActiveStardust)
                                            {
                                                NPC.ShieldStrengthTowerStardust = NPC.ShieldStrengthTowerMax;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }