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;
}
}
}
}
}
}
}
}
}
}