public void Load( BinaryFormatter formatter ) { NumTotalResources = formatter.ReadInt32(); int bytesOfAllowedResourceDataToInput = ( NumTotalResources + 7 ) / 8; PossibleResources = new List<byte>(); for ( int j = 0; j < bytesOfAllowedResourceDataToInput; j++ ) PossibleResources.Add ( formatter.ReadByte() ); Name = formatter.ReadString( ( int ) BIQTerrainSizes.Name ); Civlopedia = formatter.ReadString( ( int ) BIQTerrainSizes.CivilopediaEntry ); FoodBonus = formatter.ReadInt32(); ShieldsBonus = formatter.ReadInt32(); CommerceBonus = formatter.ReadInt32(); DefenceBonus = formatter.ReadInt32(); MovementCost = formatter.ReadInt32(); Food = formatter.ReadInt32(); Shields = formatter.ReadInt32(); Commerce = formatter.ReadInt32(); WorkerJob = formatter.ReadInt32(); PollutionEffect = formatter.ReadInt32(); AllowCities = formatter.ReadByte(); AllowColonies = formatter.ReadByte(); Impassible = formatter.ReadByte(); ImpassibleWheeled = formatter.ReadByte(); AllowAirfields = formatter.ReadByte(); AllowForts = formatter.ReadByte(); AllowOutposts = formatter.ReadByte(); AllowRadarTowers = formatter.ReadByte(); Unknown1 = formatter.ReadInt32(); LandmarkEnabled = formatter.ReadByte(); LandmarkFood = formatter.ReadInt32(); LandmarkShields = formatter.ReadInt32(); LandmarkCommerce = formatter.ReadInt32(); LandmarkFoodBonus = formatter.ReadInt32(); LandmarkShieldBonus = formatter.ReadInt32(); LandmarkCommerceBonus = formatter.ReadInt32(); LandmarkMovementCost = formatter.ReadInt32(); LandmarkDefenseBonus = formatter.ReadInt32(); LandmarkName = formatter.ReadString( ( int ) BIQTerrainSizes.LandmarkName ); LandmarkCivlopedia = formatter.ReadString( ( int ) BIQTerrainSizes.LandmarkCivlopedia); Unknown2 = formatter.ReadInt32(); TerrainFlags = formatter.ReadInt32(); DiseaseStrength = formatter.ReadInt32(); }
public void Load( BinaryFormatter formatter ) { CustomCivData = formatter.ReadInt32(); HumanPlayer = formatter.ReadInt32(); LeaderName = formatter.ReadString((int)BIQLeadSizes.LeaderName); Unknown1 = formatter.ReadInt32(); Unknown2 = formatter.ReadInt32(); NumberOfDifferentStartUnits = formatter.ReadInt32(); DifferentStartUnits = new List<StartUnits>(); for (int i = 0; i < NumberOfDifferentStartUnits; i++) { StartUnits startUnits = new StartUnits(); startUnits.UnitsOfThisType = formatter.ReadInt32(); startUnits.TypeOfStartingUnit = formatter.ReadInt32(); DifferentStartUnits.Add(startUnits); } GenderOfLeaderName = formatter.ReadInt32(); NumberOfStartingTechnologies = formatter.ReadInt32(); StartingTechnologies = new List<int>(); for (int i = 0; i < NumberOfStartingTechnologies; i++) StartingTechnologies.Add(formatter.ReadInt32()); Difficulty = formatter.ReadInt32(); InitialEra = formatter.ReadInt32(); StartCash = formatter.ReadInt32(); Government = formatter.ReadInt32(); Civ = formatter.ReadInt32(); Color = formatter.ReadInt32(); SkipFirstTurn = formatter.ReadInt32(); Unknown3 = formatter.ReadInt32(); StartEmbassies = formatter.ReadByte(); }
public void Load( BinaryFormatter formatter ) { UseDefaultRules = formatter.ReadInt32(); DefaultVictoryConditions = formatter.ReadInt32(); NumberOfPlayableCivs = formatter.ReadInt32(); IdOfPlayableCivs = new List<int>(); for ( int i = 0; i < NumberOfPlayableCivs; i++ ) IdOfPlayableCivs.Add( formatter.ReadInt32() ); VictoryConditionsAndRules = formatter.ReadInt32(); PlaceCaptureUnits = formatter.ReadInt32(); AutoPlaceKings = formatter.ReadInt32(); AutoPlaceVictoryLocations = formatter.ReadInt32(); DebugMode = formatter.ReadInt32(); UseTimeLimit = formatter.ReadInt32(); BaseTimeUnit = formatter.ReadInt32(); StartMonth = formatter.ReadInt32(); StartWeek = formatter.ReadInt32(); StartYear = formatter.ReadInt32(); MinuteTimeLimit = formatter.ReadInt32(); TurnTimeLimit = formatter.ReadInt32(); TurnsPerTimescalePart = new List<int>(); for ( int i = 0; i < 7; i++ ) TurnsPerTimescalePart.Add( formatter.ReadInt32() ); TimeUnitsPerTurn = new List<int>(); for ( int i = 0; i < 7; i++ ) TimeUnitsPerTurn.Add( formatter.ReadInt32() ); ScenarioSearchFolders = formatter.ReadString( ( int ) BIQGameSizes.ScenarioSearchFolders ); CivPartOfWhichAlliance = new List<int>(); for ( int i = 0; i < NumberOfPlayableCivs; i++ ) CivPartOfWhichAlliance.Add( formatter.ReadInt32() ); VictoryPointLimit = formatter.ReadInt32(); CityEliminationCount = formatter.ReadInt32(); OneCityCultureWinLimit = formatter.ReadInt32(); AllCitiesCultureWinLimit = formatter.ReadInt32(); DominationTerrainPercent = formatter.ReadInt32(); DominationPopulationPercent = formatter.ReadInt32(); WonderVP = formatter.ReadInt32(); DefeatingOpposingUnitVP = formatter.ReadInt32(); AdvancementVP = formatter.ReadInt32(); CityConquestVP = formatter.ReadInt32(); VictoryPointVP = formatter.ReadInt32(); CaptureSpecialUnitVP = formatter.ReadInt32(); Unknown1 = formatter.ReadInt32(); Unknown2 = formatter.ReadByte(); Alliance0 = formatter.ReadString( ( int ) BIQGameSizes.Alliance0 ); Alliance1 = formatter.ReadString( ( int ) BIQGameSizes.Alliance1 ); Alliance2 = formatter.ReadString( ( int ) BIQGameSizes.Alliance2 ); Alliance3 = formatter.ReadString( ( int ) BIQGameSizes.Alliance3 ); Alliance4 = formatter.ReadString( ( int ) BIQGameSizes.Alliance4 ); warWith0 = new List<int>(); warWith1 = new List<int>(); warWith2 = new List<int>(); warWith3 = new List<int>(); warWith4 = new List<int>(); for ( int i = 0; i < 5; i++ ) { warWith0.Add( formatter.ReadInt32() ); warWith1.Add( formatter.ReadInt32() ); warWith2.Add( formatter.ReadInt32() ); warWith3.Add( formatter.ReadInt32() ); warWith4.Add( formatter.ReadInt32() ); } AllianceVictoryType = formatter.ReadInt32(); PlaugeName = formatter.ReadString( ( int ) BIQGameSizes.PlaugeName ); PermitPlagues = formatter.ReadByte(); PlagueEarliestStart = formatter.ReadInt32(); PlagueVariation = formatter.ReadInt32(); PlagueDuration = formatter.ReadInt32(); PlagueStrength = formatter.ReadInt32(); PlagueGracePeriod = formatter.ReadInt32(); PlagueMaxOccurance = formatter.ReadInt32(); Unknown3 = formatter.ReadInt32(); Unknown4 = formatter.ReadString( ( int ) BIQGameSizes.Unknown4 ); RespawnFlagUnits = formatter.ReadInt32(); CaptureAnyFlag = formatter.ReadByte(); GoldForCapture = formatter.ReadInt32(); MapVisible = formatter.ReadByte(); RetainCulture = formatter.ReadByte(); Unknown5 = formatter.ReadInt32(); EruptionPeriod = formatter.ReadInt32(); if ( BIQHeader.MajorVer == 12 && BIQHeader.MinorVer >= 7 ) { MpBaseTime = formatter.ReadInt32(); MpCityTime = formatter.ReadInt32(); MpUnitTime = formatter.ReadInt32(); } else { MpBaseTime = 24; MpCityTime = 2; MpUnitTime = 3; } }
public void Load( BinaryFormatter formatter ) { ZoneOfControl = formatter.ReadInt32(); Name = formatter.ReadString( ( int ) BIQUnitSizes.Name ); Civlopedia = formatter.ReadString( ( int ) BIQUnitSizes.Civlopedia ); BombardStrength = formatter.ReadInt32(); BombardRange = formatter.ReadInt32(); Capacity = formatter.ReadInt32(); Cost = formatter.ReadInt32(); Defence = formatter.ReadInt32(); IconIndex = formatter.ReadInt32(); Attack = formatter.ReadInt32(); OperationalRange = formatter.ReadInt32(); PopulationCost = formatter.ReadInt32(); RateOfFire = formatter.ReadInt32(); Movement = formatter.ReadInt32(); Tech = formatter.ReadInt32(); UpgradeTo = formatter.ReadInt32(); Resource1 = formatter.ReadInt32(); Resource2 = formatter.ReadInt32(); Resource3 = formatter.ReadInt32(); UnitAbilities = formatter.ReadInt32(); AIStrategy = formatter.ReadInt32(); AvailableTo = formatter.ReadInt32(); StandardOrdersSpecialActions = formatter.ReadInt32(); AirMissions = formatter.ReadInt32(); UnitClass = formatter.ReadInt32(); OtherStrategy = formatter.ReadInt32(); HitPointBonus = formatter.ReadInt32(); PTWStandardOrders = formatter.ReadInt32(); PTWSpecialActions = formatter.ReadInt32(); PTWWorkerActions = formatter.ReadInt32(); PTWAirMissions = formatter.ReadInt32(); PTWActionsMix = formatter.ReadShort16(); Unknown1 = formatter.ReadShort16(); BombardEffects = formatter.ReadInt32(); IgnoreMovementCost = new List<byte>(); for ( int i = 0; i < 14; i++ ) IgnoreMovementCost.Add ( formatter.ReadByte() ); RequireSupport = formatter.ReadInt32(); UseExactCost = formatter.ReadInt32(); TelepadRange = formatter.ReadInt32(); Unknown4 = formatter.ReadInt32(); NumLegalUnitTelepads = formatter.ReadInt32(); LegalUnitTelepads = new List<int>(); for ( int i = 0; i < NumLegalUnitTelepads; i++ ) LegalUnitTelepads.Add( formatter.ReadInt32() ); EnslaveResults = formatter.ReadInt32(); Unknown6 = formatter.ReadInt32(); NumberOfStealthTargets = formatter.ReadInt32(); StealthTargets = new List<int>(); for ( int i = 0; i < NumberOfStealthTargets; i++ ) StealthTargets.Add ( formatter.ReadInt32() ); Unknown7 = formatter.ReadInt32(); NumLegalBuildingTelepads = formatter.ReadInt32(); LegalBuildingTelepads = new List<int>(); for ( int i = 0; i < NumLegalBuildingTelepads; i++ ) LegalBuildingTelepads.Add( formatter.ReadInt32() ); CreateCraters = formatter.ReadByte(); WorkerStrength1 = formatter.ReadInt32(); int temp = formatter.ReadInt32(); if ( temp == 1 ) { WorkerStrength2 = temp; WorkerStrength3 = formatter.ReadInt32(); temp = formatter.ReadInt32(); } Unknown9 = temp; AitDefense = formatter.ReadInt32(); }
public void Load( BinaryFormatter formatter ) { RiverConnectionInfo = formatter.ReadByte(); Border = formatter.ReadByte(); Resource = formatter.ReadInt32(); Image = formatter.ReadByte(); File = formatter.ReadByte(); Unknown1 = formatter.ReadShort16(); Overlays = formatter.ReadByte(); BaseRealTerrain = formatter.ReadByte(); Bonuses = formatter.ReadByte(); RiverCrossingData = formatter.ReadByte(); BarbarianTribe = formatter.ReadShort16(); City = formatter.ReadShort16(); Colony = formatter.ReadShort16(); Continent = formatter.ReadShort16(); Unknown2 = formatter.ReadByte(); VictoryPointLocation = formatter.ReadShort16(); Ruin = formatter.ReadInt32(); // Conquests C3COverlays = formatter.ReadInt32(); Unknown3 = formatter.ReadByte(); C3CBaseRealTerrain = formatter.ReadByte(); Unknown4 = formatter.ReadShort16(); FogOfWar = formatter.ReadShort16(); C3CBonuses = formatter.ReadInt32(); Unknown5 = formatter.ReadShort16(); }
long FlcDeltaFlc(BinaryFormatter formatter, int frame) { long pos, read; short lines, l, b, colour; byte skip; sbyte change; lines = formatter.ReadShort16(); read = 6 + sizeof(short); l = 0; while (lines > 0) { pos = l * FlcHeader.width; b = formatter.ReadShort16(); read += 2; if ((b & 0xC000) == 0x0000) { b &= 0x3FFF; for (int j = 0; j < b; j++) { skip = formatter.ReadByte(); pos += skip; read += 1; change = formatter.ReadSByte(); read += 1; if (change > 0) { for (int i = 0; i < change; i++) { colour = formatter.ReadShort16(); read += 2; mBufferFrames[frame][pos++] = (byte)(colour & 0x00FF); mBufferFrames[frame][pos++] = (byte)((colour >> 8) & 0x00FF); } } else { change = (sbyte)-change; colour = formatter.ReadShort16(); read += 2; for (int i = 0; i < change; i++) { mBufferFrames[frame][pos++] = (byte)(colour & 0x00FF); mBufferFrames[frame][pos++] = (byte)((colour >> 8) & 0x00FF); } } } lines--; l++; } else { if ((b & 0xC000) == 0xC000) l -= b; else mBufferFrames[frame][pos++] = (byte)(b & 0x00FF); } } if ((read % 4) == 1) { formatter.ReadBytes(2); read++; } return read; }
void FlcColour256(BinaryFormatter formatter, int frame) { short packets, idx; byte skip, change; packets = formatter.ReadShort16(); idx = 0; for (int i = 0; i < packets; i++) { skip = formatter.ReadByte(); idx += skip; change = formatter.ReadByte(); if (change == 0) { for (idx = 0; idx < 256; idx++) { mColourMap[frame][idx].red = formatter.ReadByte(); mColourMap[frame][idx].green = formatter.ReadByte(); mColourMap[frame][idx].blue = formatter.ReadByte(); } } else { for (int j = 0; j < change; j++) { mColourMap[frame][idx].red = formatter.ReadByte(); mColourMap[frame][idx].green = formatter.ReadByte(); mColourMap[frame][idx].blue = formatter.ReadByte(); idx++; } } } }
void FlcBitwiseRun(BinaryFormatter formatter, int frame) { int line = 0; int k, pos = 0; sbyte size; byte colour; while (line++ < FlcHeader.height) { formatter.ReadByte(); k = 0; while (k < FlcHeader.width) { size = (sbyte)formatter.ReadByte(); if (size > 0) { colour = formatter.ReadByte(); k += size; for (int j = 0; j < size; j++ ) mBufferFrames[frame][pos++] = colour; } else { size = (sbyte)-size; k += size; for (int j = 0; j < size; j++) { colour = formatter.ReadByte(); mBufferFrames[frame][pos++] = colour; } } } } }
public void Load( BinaryFormatter formatter ) { HasWalls = formatter.ReadByte(); HasPalace = formatter.ReadByte(); Name = formatter.ReadString((int)BIQCitySizes.Name); OwnerType = formatter.ReadInt32(); NumBuildings = formatter.ReadInt32(); Buildings = new List<int>(); for ( int i = 0; i < NumBuildings; i++ ) Buildings.Add( formatter.ReadInt32() ); Culture = formatter.ReadInt32(); Owner = formatter.ReadInt32(); Size = formatter.ReadInt32(); X = formatter.ReadInt32(); Y = formatter.ReadInt32(); CityLevel = formatter.ReadInt32(); BorderLevel = formatter.ReadInt32(); UseAutoName = formatter.ReadInt32(); }