protected void HandleAllAchievementData(InPacket packet) { CompletedAchievements.Clear(); AchievementCriterias.Clear(); for (;;) { uint achievementId = packet.ReadUInt32(); if (achievementId == 0xFFFFFFFF) break; packet.ReadPackedTime(); CompletedAchievements.Add(achievementId); } for (;;) { uint criteriaId = packet.ReadUInt32(); if (criteriaId == 0xFFFFFFFF) break; ulong criteriaCounter = packet.ReadPackedGuid(); packet.ReadPackedGuid(); packet.ReadInt32(); packet.ReadPackedTime(); packet.ReadInt32(); packet.ReadInt32(); AchievementCriterias[criteriaId] = criteriaCounter; } }