protected virtual void ReadDiplomacy(PrimitiveReader reader) { PlayerInfo[] infos = PlayersInfo; for (int i = 0; i < infos.Length; i++) { DiplomacyStance[] stances = new DiplomacyStance[maxPlayersCount]; for (int j = 0; j < stances.Length; j++) { stances[j] = (DiplomacyStance)reader.ReadUInt32(); } infos[i].Diplomacy = stances; } // This is individual victory in AoE. // Not used in AoE2. byte[] aoeIndividualVictory = reader.ReadBytes(11520); uint separator = reader.ReadUInt32(); if (separator != separatorValue) { throw new InvalidDataException("Expected separator value."); } for (int i = 0; i < infos.Length; i++) { infos[i].AlliedVictory = reader.ReadUInt32() != 0; } }
void SetStance(int index, DiplomacyStance stance) { if (stance == DiplomacyStance.Allied) { allyCheckboxes[index].Checked = true; } else if (stance == DiplomacyStance.Neutral) { neutralCheckboxes[index].Checked = true; } else { enemyCheckboxes[index].Checked = true; } }
static void ReadDiplomacy(PrimitiveReader reader) { DiplomacyStance[][] stances = new DiplomacyStance[playersCount][]; for (int i = 0; i < stances.Length; i++) { DiplomacyStance[] playerStances = new DiplomacyStance[playersCount]; for (int j = 0; j < playerStances.Length; j++) { playerStances[j] = (DiplomacyStance)reader.ReadUInt32(); } stances[i] = playerStances; } if (minorVersion < 18) // For AOE { IndividualVictory[][] customVictoryConditions = new IndividualVictory[playersCount][]; for (int i = 0; i < customVictoryConditions.Length; i++) { IndividualVictory[] conditions = new IndividualVictory[12]; for (int j = 0; j < conditions.Length; j++) { conditions[j].Unknown = reader.ReadBytes(60); } customVictoryConditions[i] = conditions; } System.Diagnostics.Debugger.Break(); } else { byte[] unused = reader.ReadBytes(11520); // Always unused.. 11520 bytes. } uint separator = reader.ReadUInt32(); if (separator != 0xFFFFFF9D) { throw new InvalidDataException(); } uint[] alliedVictory = new uint[playersCount]; // Apparently ignored. for (int i = 0; i < alliedVictory.Length; i++) { alliedVictory[i] = reader.ReadUInt32(); } }