public void UpdateFishIntel(byte[] buffer) { this.checkBoxMackerelM.Checked = this.checkBoxMackerelM2.Checked = (buffer[0] & (byte)FishIntel.MACKEREL_MACHINE) != 0; this.checkBoxCoelacanthM.Checked = (buffer[0] & (byte)FishIntel.COELACANTH_MACHINE) != 0; this.checkBoxBreamM.Checked = this.checkBoxBreamM2.Checked = (buffer[0] & (byte)FishIntel.BREAM_MACHINE) != 0; this.checkBoxStarfishM.Checked = this.checkBoxStarfishM2.Checked = (buffer[0] & (byte)FishIntel.STARFISH_MACHINE) != 0; this.checkBoxSwordfishM.Checked = (buffer[0] & (byte)FishIntel.SWORDFISH_MACHINE) != 0; this.checkBoxBlowfishM.Checked = this.checkBoxBlowfishM2.Checked = (buffer[0] & (byte)FishIntel.BLOWFISH_MACHINE) != 0; this.checkBoxBloatFishM.Checked = this.checkBoxBloatFishM2.Checked = this.checkBoxBloatFishM3.Checked = (buffer[0] & (byte)FishIntel.BLOAT_FISH_MACHINE) != 0; this.checkBoxCarpM.Checked = this.checkBoxCarpM2.Checked = this.checkBoxCarpM3.Checked = this.checkBoxCarpM4.Checked = (buffer[0] & (byte)FishIntel.CARP_MACHINE) != 0; this.checkBoxArapaimaM.Checked = this.checkBoxArapaimaM2.Checked = this.checkBoxArapaimaM3.Checked = (buffer[1] & (byte)FishIntel.ARAPAIMA_MACHINE) != 0; this.checkBoxKoiCarpM.Checked = this.checkBoxKoiCarpM2.Checked = this.checkBoxKoiCarpM3.Checked = this.checkBoxKoiCarpM4.Checked = this.checkBoxKoiCarpM5.Checked = (buffer[1] & (byte)FishIntel.KOI_CARP_MACHINE) != 0; this.checkBoxKillifishM.Checked = (buffer[1] & (byte)FishIntel.KILLIFISH_MACHINE) != 0; this.checkBoxBaskingShark.Checked = (buffer[1] & (byte)FishIntel.BASKING_SHARK) != 0; this.checkBoxBream.Checked = (buffer[1] & (byte)FishIntel.BREAM) != 0; this.checkBoxStarfish.Checked = (buffer[1] & (byte)FishIntel.STARFISH) != 0; this.checkBoxBeetleFish.Checked = (buffer[1] & (byte)FishIntel.BEETLE_FISH) != 0; this.checkBoxHorseshoeCrab.Checked = (buffer[1] & (byte)FishIntel.HORSESHOE_CRAB) != 0; this.checkBoxMackerel.Checked = (buffer[2] & (byte)FishIntel.MACKEREL) != 0; this.checkBoxSwordfish.Checked = (buffer[2] & (byte)FishIntel.SWORDFISH) != 0; this.checkBoxBlowfish.Checked = (buffer[2] & (byte)FishIntel.BLOWFISH) != 0; this.checkBoxCoelacanth.Checked = (buffer[2] & (byte)FishIntel.COELACANTH) != 0; this.checkBoxTwoface.Checked = (buffer[2] & (byte)FishIntel.TWOFACE) != 0; this.checkBoxWaterFlea.Checked = (buffer[2] & (byte)FishIntel.WATER_FLEA) != 0; this.checkBoxOilSardine.Checked = (buffer[2] & (byte)FishIntel.OIL_SARDINE) != 0; this.checkBoxArapaima.Checked = (buffer[2] & (byte)FishIntel.ARAPAIMA) != 0; this.checkBoxFreshwaterRay.Checked = (buffer[3] & (byte)FishIntel.FRESHWATER_RAY) != 0; this.checkBoxFurCarp.Checked = this.checkBoxFurCarp2.Checked = (buffer[3] & (byte)FishIntel.FUR_CARP) != 0; this.checkBoxKoiCarp.Checked = this.checkBoxKoiCarp2.Checked = this.checkBoxKoiCarp3.Checked = this.checkBoxKoiCarp4.Checked = this.checkBoxKoiCarp5.Checked = this.checkBoxKoiCarp6.Checked = (buffer[3] & (byte)FishIntel.KOI_CARP) != 0; this.checkBoxBloatFish.Checked = (buffer[3] & (byte)FishIntel.BLOAT_FISH) != 0; this.checkBoxCarp.Checked = this.checkBoxCarp2.Checked = this.checkBoxCarp3.Checked = this.checkBoxCarp4.Checked = this.checkBoxCarp5.Checked = this.checkBoxCarp6.Checked = (buffer[3] & (byte)FishIntel.CARP) != 0; this.checkBoxKillifish.Checked = this.checkBoxKillifish2.Checked = this.checkBoxKillifish3.Checked = this.checkBoxKillifish4.Checked = this.checkBoxKillifish5.Checked = this.checkBoxKillifish6.Checked = (buffer[3] & (byte)FishIntel.KILLIFISH) != 0; this.checkBoxTwinfish.Checked = (buffer[3] & (byte)FishIntel.TWINFISH) != 0; this.checkBoxArowana.Checked = this.checkBoxArowana2.Checked = this.checkBoxArowana3.Checked = this.checkBoxArowana4.Checked = (buffer[3] & (byte)FishIntel.AROWANA) != 0; this.checkBoxIronPipe.Checked = (buffer[6] & (byte)FishIntel.IRON_PIPE) != 0; this.checkBoxPodB.Checked = (buffer[6] & (byte)FishIntel.POD_B) != 0; this.checkBoxBrokenFirearm.Checked = this.checkBoxBrokenFirearm2.Checked = (buffer[6] & (byte)FishIntel.BROKEN_FIREARM) != 0; this.checkBoxBattery.Checked = this.checkBoxBattery2.Checked = (buffer[7] & (byte)FishIntel.BATTERY) != 0; this.checkBoxGasCylinder.Checked = this.checkBoxGasCylinder2.Checked = this.checkBoxGasCylinder3.Checked = (buffer[7] & (byte)FishIntel.GAS_CYLINDER) != 0; this.checkBoxTire.Checked = this.checkBoxTire2.Checked = (buffer[7] & (byte)FishIntel.TIRE) != 0; this.checkBoxMachineHead.Checked = (buffer[7] & (byte)FishIntel.MACHINE_LIFEFORM_HEAD) != 0; this.checkBoxFreshwaterRayM.Checked = (buffer[7] & (byte)FishIntel.FRESHWATER_RAY_MACHINE) != 0; this.checkBoxBaskingSharkM.Checked = (buffer[7] & (byte)FishIntel.BASKING_SHARK_MACHINE) != 0; this.checkBoxArowanaM.Checked = (buffer[7] & (byte)FishIntel.AROWANA_MACHINE) != 0; this.checkBoxHorseshoeCrabM.Checked = (buffer[7] & (byte)FishIntel.HORSESHOE_CRAB_MACHINE) != 0; int currentCount = buffer.Select(s => BitCount.PrecomputedBitcount(s)).Sum(); this.textProgressBarFish.Value = currentCount; }
void MemoryReadThread() { Debug.WriteLine("[NierIntelTracker] MemoryReadThread"); while (!_cancelSource.IsCancellationRequested) { try { Trace.WriteLine("[NierIntelTracker] Waiting for NieRAutomata.exe..."); _intelDisplay.updateComponentDisplayStatus("Checking for game process"); Process game; while ((game = GetGameProcess()) == null) { Thread.Sleep(500); if (_cancelSource.IsCancellationRequested) { return; } } Trace.WriteLine("[NierIntelTracker] Got NieRAutomata.exe!"); _intelDisplay.updateComponentDisplayStatus("Game process found"); IEnumerator coll = game.Modules.GetEnumerator(); coll.MoveNext(); DeepPointer FishPtr; DeepPointer UnitIntelPtr; var memSize = ((ProcessModule)coll.Current).ModuleMemorySize; switch (memSize) { case 106266624: FishPtr = new DeepPointer(0x198452C); // 0x197C460 UnitIntelPtr = new DeepPointer(0x19844C8); _intelDisplay.updateComponentDisplayStatus("v1.01"); break; default: FishPtr = new DeepPointer(0x25AF8AC); // 0x25A77E0 UnitIntelPtr = new DeepPointer(0x25AF848); _intelDisplay.updateComponentDisplayStatus("vdebug"); break; } Debug.WriteLine("[NierIntelTracker] ModuleMemorySize: " + memSize.ToString()); while (!game.HasExited) { IntelFishOld = IntelFishCurrent; IntelFishCurrent = FishPtr.DerefBytes(game, 8); if (!IntelFishCurrent.SequenceEqual(IntelFishOld)) { int fishCount = IntelFishCurrent.Select(s => BitCount.PrecomputedBitcount(s)).Sum(); this._fishCountDisplay(fishCount); this._intelDisplay.UpdateFishIntel(IntelFishCurrent, fishCount); } IntelUnitOld = IntelUnitCurrent; IntelUnitCurrent = UnitIntelPtr.DerefBytes(game, 24); if (!IntelUnitCurrent.SequenceEqual(IntelUnitOld)) { this._intelDisplay.UpdateUnitIntel(IntelUnitCurrent); } Thread.Sleep(SLEEP_TIME); if (_cancelSource.IsCancellationRequested) { return; } } } catch (Exception ex) { Debug.WriteLine("[NierIntelTracker] Exception: " + ex.ToString()); Thread.Sleep(1000); } } }
public void UpdateUnitIntel(byte[] buffer) { this.checkBoxSmallStubby.Checked = (buffer[3] & 128) != 0; this.checkBoxSmallStubbyGunEquipped.Checked = (buffer[3] & 64) != 0; this.checkBoxSmallStubbyShieldEquipped.Checked = (buffer[3] & 32) != 0; this.checkBoxSmallStubbyElectromagneticshieldequipped.Checked = (buffer[3] & 16) != 0; this.checkBoxMultitierType.Checked = (buffer[3] & 8) != 0; this.checkBoxMultitierTypeGunEquipped.Checked = (buffer[3] & 4) != 0; this.checkBoxSmallBiped.Checked = (buffer[3] & 1) != 0; this.checkBoxSmallBipedTorchEquipped.Checked = (buffer[20] & 1) != 0; this.checkBoxMediumBiped.Checked = (buffer[2] & 128) != 0; this.checkBoxMediumBipedShieldEquipped.Checked = (buffer[2] & 64) != 0; this.checkBoxMediumBipedElectromagneticShieldEquipped.Checked = (buffer[2] & 32) != 0; this.checkBoxMediumQuadruped.Checked = (buffer[2] & 16) != 0; this.checkBoxMediumQuadrupedstanding.Checked = (buffer[2] & 8) != 0; this.checkBoxMultilegMediummodelLongrange.Checked = (buffer[2] & 4) != 0; this.checkBoxMultilegMediummodelCloserange.Checked = (buffer[2] & 2) != 0; this.checkBoxGoliathBiped.Checked = (buffer[2] & 1) != 0; this.checkBoxGoliathBipedEnhancedLegpowerModel.Checked = (buffer[1] & 128) != 0; this.checkBoxReversejointedGoliath.Checked = (buffer[1] & 64) != 0; this.checkBoxSmallFlyer.Checked = (buffer[1] & 32) != 0; this.checkBoxMediumFlyer.Checked = (buffer[1] & 16) != 0; this.checkBoxMediumFlyerKamikazeUnit.Checked = (buffer[1] & 8) != 0; this.checkBoxMediumFlyerGunnerx2Kamikazex2.Checked = (buffer[1] & 4) != 0; this.checkBoxSmallExploder.Checked = (buffer[1] & 2) != 0; this.checkBoxMediumExploder.Checked = (buffer[1] & 1) != 0; this.checkBoxSmallSphereAxequipped.Checked = (buffer[0] & 128) != 0; this.checkBoxSmallSphereDrillequipped.Checked = (buffer[0] & 64) != 0; this.checkBoxSmallSphereGunequipped.Checked = (buffer[0] & 32) != 0; this.checkBoxLinkedsphereTypeSawequipped.Checked = (buffer[0] & 16) != 0; this.checkBoxLinkedsphereTypeDrillequipped.Checked = (buffer[0] & 8) != 0; this.checkBoxLinkedsphereTypeThornequipped.Checked = (buffer[0] & 4) != 0; this.checkBoxLinkedsphereTypeGunequipped.Checked = (buffer[0] & 2) != 0; this.checkBoxRampagingSmallStubby.Checked = (buffer[21] & 4) != 0; this.checkBoxRampagingSmallBiped.Checked = (buffer[21] & 2) != 0; this.checkBoxRampagingMediumBiped.Checked = (buffer[21] & 1) != 0; int countStdMultiTier = this.checkBoxMultitierType.Checked ? 2 : 0; int countStd = countStdMultiTier + BitCount.PrecomputedBitcount(buffer[3] & 0xF5) + BitCount.PrecomputedBitcount(buffer[2]) + BitCount.PrecomputedBitcount(buffer[1]) + BitCount.PrecomputedBitcount(buffer[0] & 0xFE) + BitCount.PrecomputedBitcount((byte)(buffer[21] & 7)) + (int)(buffer[20] & 1); this.textProgressBarStd.Value = countStd; this.checkBoxDesertSmallStubby.Checked = (buffer[0] & 1) != 0; this.checkBoxDesertSmallStubbySaw.Checked = (buffer[7] & 128) != 0; this.checkBoxDesertSmallBipedSword.Checked = (buffer[7] & 64) != 0; this.checkBoxDesertMediumBipedSword.Checked = (buffer[7] & 32) != 0; this.checkBoxDesertMediumBipedShield.Checked = (buffer[7] & 16) != 0; this.checkBoxDesertMediumBipedEMShield.Checked = (buffer[7] & 8) != 0; this.checkBoxDesertGoliathBiped.Checked = (buffer[7] & 4) != 0; this.checkBoxDesertSmallFlyer.Checked = (buffer[7] & 2) != 0; this.checkBoxDesertMediumFlyer.Checked = (buffer[7] & 1) != 0; this.checkBoxDesertMediumFlyerKamikazeUnit.Checked = (buffer[6] & 128) != 0; this.checkBoxDesertMediumFlyerGunnerx2Kamikazex2.Checked = (buffer[6] & 64) != 0; int countDesert = BitCount.PrecomputedBitcount(buffer[0] & 1) + BitCount.PrecomputedBitcount(buffer[7]) + BitCount.PrecomputedBitcount(buffer[6] & 0xC0); this.textProgressBarDesert.Value = countDesert; this.checkBoxParkSmallStubby.Checked = (buffer[6] & 32) != 0; this.checkBoxParkSmallBiped.Checked = (buffer[6] & 16) != 0; this.checkBoxParkMediumBipedGun.Checked = (buffer[6] & 8) != 0; this.checkBoxParkSmallFlyer.Checked = (buffer[6] & 4) != 0; this.checkBoxParkMediumFlyer.Checked = (buffer[6] & 2) != 0; this.checkBoxParkMediumFlyerKamikazeUnit.Checked = (buffer[6] & 1) != 0; this.checkBoxParkMediumFlyerGunnerx2Kamikazex2.Checked = (buffer[5] & 128) != 0; this.checkBoxParkRampagingSmallBiped.Checked = (buffer[20] & 128) != 0; this.checkBoxParkRampagingMediumBiped.Checked = (buffer[20] & 64) != 0; int countPark = BitCount.PrecomputedBitcount(buffer[6] & 0x3F) + BitCount.PrecomputedBitcount(buffer[5] & 0x80) + BitCount.PrecomputedBitcount(buffer[20] & 0xC0); this.textProgressBarPark.Value = countPark; this.checkBoxForestSmallStubby.Checked = (buffer[5] & 64) != 0; this.checkBoxForestSmallBipedSpear.Checked = (buffer[5] & 32) != 0; this.checkBoxForestMediumBipedSpear.Checked = (buffer[5] & 16) != 0; this.checkBoxForestMediumBipedShield.Checked = (buffer[5] & 8) != 0; this.checkBoxForestMediumBipedEMShield.Checked = (buffer[5] & 4) != 0; this.checkBoxForestMediumQuadruped.Checked = (buffer[5] & 2) != 0; this.checkBoxForestMediumQuadrupedRider.Checked = (buffer[5] & 1) != 0; this.checkBoxForestMediumQuadrupedStanding.Checked = (buffer[4] & 128) != 0; this.checkBoxForestGoliathBipedEnhancedLegpower.Checked = (buffer[4] & 64) != 0; this.checkBoxForestSmallFlyer.Checked = (buffer[4] & 32) != 0; int countForest = BitCount.PrecomputedBitcount(buffer[5] & 0x7F) + BitCount.PrecomputedBitcount(buffer[4] & 0xE0); this.textProgressBarForest.Value = countForest; this.checkBoxFactorySmallStubby.Checked = (buffer[20] & 16) != 0; this.checkBoxFactorySmallStubbyKamikaze.Checked = (buffer[20] & 8) != 0; this.checkBoxFactorySmallBipedTorch.Checked = (buffer[4] & 16) != 0; this.checkBoxFactorySmallBipedAxe.Checked = (buffer[4] & 8) != 0; this.checkBoxFactoryMediumBipedAxe.Checked = (buffer[4] & 4) != 0; this.checkBoxFactoryMediumQuadruped.Checked = (buffer[4] & 2) != 0; this.checkBoxFactorySmallFlyer.Checked = (buffer[4] & 1) != 0; int countFactory = BitCount.PrecomputedBitcount(buffer[20] & 0x18) + BitCount.PrecomputedBitcount(buffer[4] & 0x1F); this.textProgressBarFactory.Value = countFactory; this.checkBoxVillageSmallStubby.Checked = (buffer[11] & 128) != 0; this.checkBoxVillageMultitier.Checked = (buffer[11] & 64) != 0; this.checkBoxVillageSmallBiped.Checked = (buffer[11] & 32) != 0; this.checkBoxVillageMediumBiped.Checked = (buffer[11] & 16) != 0; this.checkBoxVillageGoliathBiped.Checked = (buffer[11] & 8) != 0; this.checkBoxVillageSmallFlyer.Checked = (buffer[11] & 4) != 0; this.checkBoxVillageSmallSphere.Checked = (buffer[11] & 2) != 0; this.checkBoxVillageSartreJeanPaul.Checked = (buffer[11] & 1) != 0; this.checkBoxVillagePascal.Checked = (buffer[10] & 128) != 0; this.checkBoxVillagePascalFlying.Checked = (buffer[10] & 64) != 0; this.checkBoxVillageFatherMachine.Checked = (buffer[10] & 32) != 0; this.checkBoxVillageMotherMachine.Checked = (buffer[10] & 16) != 0; this.checkBoxVillageChildMachine.Checked = (buffer[10] & 16) != 0; this.checkBoxVillageBigSisterMachine.Checked = (buffer[10] & 4) != 0; this.checkBoxVillageLittleSisterMachine.Checked = (buffer[10] & 4) != 0; this.checkBoxVillageScientistMachine.Checked = (buffer[10] & 1) != 0; this.checkBoxVillageWeirdMachine.Checked = (buffer[9] & 128) != 0; int countMotherChild = this.checkBoxVillageMotherMachine.Checked ? 2 : 0; int countSisters = this.checkBoxVillageBigSisterMachine.Checked ? 2 : 0; int countVillage = countMotherChild + countSisters + BitCount.PrecomputedBitcount(buffer[11]) + BitCount.PrecomputedBitcount(buffer[10] & 0xE1) + BitCount.PrecomputedBitcount(buffer[9] & 0x80); this.textProgressBarVillage.Value = countVillage; this.checkBoxEnhancedSmallStubby.Checked = (buffer[9] & 4) != 0; this.checkBoxEnhancedMultitierType.Checked = (buffer[9] & 2) != 0; this.checkBoxEnhancedMultitierTypeGun.Checked = (buffer[9] & 1) != 0; this.checkBoxEnhancedSmallBiped.Checked = (buffer[8] & 64) != 0; this.checkBoxEnhancedMediumBiped.Checked = (buffer[8] & 32) != 0; this.checkBoxEnhancedMediumQuadruped.Checked = (buffer[8] & 16) != 0; this.checkBoxEnhancedMediumQuadrupedstanding.Checked = (buffer[20] & 4) != 0; this.checkBoxEnhancedMultilegMediumModelLongrange.Checked = (buffer[8] & 8) != 0; this.checkBoxEnhancedMultilegMediumModelCloserange.Checked = (buffer[8] & 4) != 0; this.checkBoxEnhancedGoliathBiped.Checked = (buffer[8] & 2) != 0; this.checkBoxEnhancedGoliathBipedEnhancedLegpower.Checked = (buffer[20] & 2) != 0; this.checkBoxEnhancedReversejointedGoliath.Checked = (buffer[8] & 1) != 0; this.checkBoxEnhancedSmallFlyer.Checked = (buffer[15] & 128) != 0; this.checkBoxEnhancedMediumFlyer.Checked = (buffer[15] & 64) != 0; this.checkBoxEnhancedMediumFlyerKamikaze.Checked = (buffer[15] & 32) != 0; this.checkBoxEnhancedMediumFlyerGunnerx2Kamikazex2.Checked = (buffer[15] & 16) != 0; this.checkBoxEnhancedSmallSphereAxe.Checked = (buffer[15] & 8) != 0; this.checkBoxEnhancedSmallSphereDrill.Checked = (buffer[15] & 4) != 0; this.checkBoxEnhancedSmallSphereGun.Checked = (buffer[15] & 2) != 0; this.checkBoxEnhancedLinkedsphereTypeSaw.Checked = (buffer[15] & 1) != 0; this.checkBoxEnhancedLinkedsphereTypeDrill.Checked = (buffer[14] & 128) != 0; this.checkBoxEnhancedLinkedsphereTypeGun.Checked = (buffer[14] & 64) != 0; this.checkBoxEnhancedLinkedsphereTypeThorn.Checked = (buffer[14] & 32) != 0; int countEnhancedMultitier = this.checkBoxEnhancedMultitierType.Checked ? 2 : 0; int countEnhanced = countEnhancedMultitier + BitCount.PrecomputedBitcount(buffer[8] & 0x7F) + BitCount.PrecomputedBitcount(buffer[9] & 0x05) + BitCount.PrecomputedBitcount(buffer[20] & 0x06) + BitCount.PrecomputedBitcount(buffer[15]) + BitCount.PrecomputedBitcount(buffer[14] & 0xE0); this.textProgressBarEnhanced.Value = countEnhanced; this.checkBoxEMPSmallStubby.Checked = (buffer[14] & 16) != 0; this.checkBoxEMPSmallBiped.Checked = (buffer[14] & 8) != 0; this.checkBoxEMPMediumBiped.Checked = (buffer[14] & 4) != 0; this.checkBoxEMPGoliathBiped.Checked = (buffer[14] & 2) != 0; int countEMP = BitCount.PrecomputedBitcount(buffer[14] & 0x1E); this.textProgressBarEMP.Value = countEMP; this.checkBoxSpecialMarx.Checked = (buffer[14] & 1) != 0; this.checkBoxSpecialEngels.Checked = (buffer[13] & 128) != 0; this.checkBoxSpecialAdamFirstEncounter.Checked = (buffer[13] & 64) != 0; this.checkBoxSpecialAdamBattleintheAlienShip.Checked = (buffer[13] & 32) != 0; this.checkBoxSpecialAdamFinalBattle.Checked = (buffer[13] & 16) != 0; this.checkBoxSpecialEveFirstEncounter.Checked = (buffer[13] & 64) != 0; this.checkBoxSpecialEveBattleintheAlienShip.Checked = (buffer[13] & 8) != 0; this.checkBoxSpecialEveFinalBattle.Checked = (buffer[13] & 4) != 0; this.checkBoxSpecialEveFinalBattle2.Checked = (buffer[13] & 2) != 0; this.checkBoxSpecialGoliathTankAmusementPark.Checked = (buffer[13] & 1) != 0; this.checkBoxSpecialBeauvoirSimone.Checked = (buffer[12] & 128) != 0; this.checkBoxSpecialGoliathFlyer.Checked = (buffer[12] & 64) != 0; this.checkBoxSpecialGrun.Checked = (buffer[12] & 32) != 0; this.checkBoxSpecialImmanuel.Checked = (buffer[12] & 16) != 0; this.checkBoxSpecialErnst.Checked = (buffer[12] & 8) != 0; this.checkBoxSpecialKierkegaard.Checked = (buffer[12] & 4) != 0; this.checkBoxSpecialSoShi.Checked = (buffer[12] & 2) != 0; this.checkBoxSpecialBokuShi.Checked = (buffer[12] & 1) != 0; this.checkBoxSpecialHegel.Checked = (buffer[19] & 128) != 0; this.checkBoxSpecialHegel2.Checked = (buffer[19] & 64) != 0; this.checkBoxSpecialGoliathTank.Checked = (buffer[19] & 32) != 0; this.checkBoxSpecialAuguste.Checked = (buffer[19] & 16) != 0; this.checkBoxSpecialFriedrich.Checked = (buffer[19] & 16) != 0; this.checkBoxSpecialKoShi.Checked = (buffer[19] & 4) != 0; this.checkBoxSpecialRoShi.Checked = (buffer[19] & 4) != 0; this.checkBoxSpecialKoShiRoshi.Checked = (buffer[19] & 4) != 0; this.checkBoxSpecialRedGirl.Checked = (buffer[18] & 128) != 0; int countAuguste = this.checkBoxSpecialAuguste.Checked ? 2 : 0; int countKoShi = this.checkBoxSpecialKoShi.Checked ? 2 : 0; int countSpecial = countAuguste + countKoShi + BitCount.PrecomputedBitcount(buffer[14] & 0x01) + BitCount.PrecomputedBitcount(buffer[13]) + BitCount.PrecomputedBitcount(buffer[12]) + BitCount.PrecomputedBitcount(buffer[19] & 0xE4) + BitCount.PrecomputedBitcount(buffer[18] & 0x80); this.textProgressBarSpecial.Value = countSpecial; this.checkBoxAndroidYoRHaStandardArmament.Checked = (buffer[18] & 64) != 0; this.checkBoxAndroidYoRHaHeavyArmament.Checked = (buffer[18] & 32) != 0; this.checkBoxAndroidYoRHaHeavyArmament2.Checked = (buffer[18] & 16) != 0; this.checkBoxAndroidYoRHaFlightUnit.Checked = (buffer[18] & 8) != 0; this.checkBoxAndroidYoRHaOperator.Checked = (buffer[18] & 4) != 0; this.checkBoxAndroid8B.Checked = (buffer[18] & 2) != 0; this.checkBoxAndroid22B.Checked = (buffer[18] & 2) != 0; this.checkBoxAndroid64B.Checked = (buffer[18] & 2) != 0; this.checkBoxAndroid21O.Checked = (buffer[17] & 64) != 0; this.checkBoxAndroid2BCopy.Checked = (buffer[17] & 32) != 0; this.checkBoxAndroid9S.Checked = (buffer[17] & 16) != 0; this.checkBoxAndroidA2LongHair.Checked = (buffer[17] & 8) != 0; this.checkBoxAndroidA2ShortHair.Checked = (buffer[17] & 4) != 0; int countAndroidRenegade = this.checkBoxAndroid8B.Checked ? 3 : 0; int countAndroid = countAndroidRenegade + BitCount.PrecomputedBitcount(buffer[18] & 0x7C) + BitCount.PrecomputedBitcount(buffer[17] & 0x7C); this.textProgressBarAndroid.Value = countAndroid; this.checkBoxPeculiarCourageousBrother.Checked = (buffer[17] & 2) != 0; this.checkBoxPeculiarHatefulSister.Checked = (buffer[17] & 1) != 0; this.checkBoxPeculiarVengefulChild.Checked = (buffer[16] & 128) != 0; this.checkBoxPeculiarGoldTank.Checked = (buffer[16] & 64) != 0; this.checkBoxPeculiarGoldGoliathBiped.Checked = (buffer[16] & 32) != 0; this.checkBoxPeculiarGoliathTankDesert.Checked = (buffer[16] & 16) != 0; this.checkBoxPeculiarGunmanBiped.Checked = (buffer[16] & 8) != 0; this.checkBoxPeculiarGunmanFlyer.Checked = (buffer[16] & 4) != 0; this.checkBoxPeculiarGunmanStubby.Checked = (buffer[16] & 2) != 0; this.checkBoxPeculiarBlooddrenchedMachine.Checked = (buffer[16] & 1) != 0; this.checkBoxPeculiarAmusementParkRabbit.Checked = (buffer[23] & 128) != 0; this.checkBoxPeculiarZombieClown.Checked = (buffer[23] & 64) != 0; this.checkBoxPeculiarAnimalMachine.Checked = (buffer[23] & 32) != 0; this.checkBoxPeculiarGravekeeper.Checked = (buffer[23] & 16) != 0; this.checkBoxPeculiarMonsterType.Checked = (buffer[23] & 8) != 0; this.checkBoxPeculiarDyingGoliathBiped.Checked = (buffer[23] & 4) != 0; int countPeculiar = BitCount.PrecomputedBitcount(buffer[17] & 0x03) + BitCount.PrecomputedBitcount(buffer[16]) + BitCount.PrecomputedBitcount(buffer[23] & 0xFC); this.textProgressBarPeculiar.Value = countPeculiar; this.checkBoxAmicableMachinewithaDream.Checked = (buffer[23] & 2) != 0; this.checkBoxAmicableMachineinLove.Checked = (buffer[23] & 2) != 0; this.checkBoxAmicableMachinewithMakeup.Checked = (buffer[23] & 2) != 0; this.checkBoxAmicableRomeo.Checked = (buffer[22] & 64) != 0; this.checkBoxAmicableJuliet.Checked = (buffer[22] & 64) != 0; this.checkBoxAmicableFatherServoWhiteBelt.Checked = (buffer[22] & 16) != 0; this.checkBoxAmicableFatherServoBrownBelt.Checked = (buffer[22] & 8) != 0; this.checkBoxAmicableFatherServoBlackBelt.Checked = (buffer[22] & 4) != 0; this.checkBoxAmicableFatherServoRedandWhiteBelt.Checked = (buffer[22] & 2) != 0; this.checkBoxAmicableFatherServoRedBelt.Checked = (buffer[22] & 1) != 0; this.checkBoxAmicableAnimallovingMachine.Checked = (buffer[21] & 128) != 0; this.checkBoxAmicableHighspeedMachine.Checked = (buffer[9] & 64) != 0; this.checkBoxAmicableMasamune.Checked = (buffer[21] & 64) != 0; int countSarteFangirls = this.checkBoxAmicableMachinewithaDream.Checked ? 3 : 0; int countShakespeare = this.checkBoxAmicableJuliet.Checked ? 2 : 0; int countAmicable = countSarteFangirls + countShakespeare + BitCount.PrecomputedBitcount(buffer[22] & 0x1F) + BitCount.PrecomputedBitcount(buffer[21] & 0xC0) + BitCount.PrecomputedBitcount(buffer[9] & 0x40); this.textProgressBarAmicable.Value = countAmicable; this.checkBoxEmilEmil.Checked = (buffer[21] & 32) != 0; this.checkBoxEmilEmilClonesFlying.Checked = (buffer[21] & 16) != 0; this.checkBoxEmilEmilClonesGround.Checked = (buffer[21] & 16) != 0; int countEmil = BitCount.PrecomputedBitcount(buffer[21] & 0x20) + (this.checkBoxEmilEmilClonesFlying.Checked ? 2 : 0); this.textProgressBarEmil.Value = countEmil; this.textProgressBarUnit.Value = countStd + countDesert + countPark + countForest + countFactory + countVillage + countEnhanced + countEMP + countSpecial + countAndroid + countPeculiar + countAmicable + countEmil; #if DEBUG this.debugValue2.Text = string.Join(", ", buffer); #endif }