private void Init(STUProgressionUnlocks progressionUnlocks) { if (progressionUnlocks == null) { return; } if (progressionUnlocks.m_lootBoxesUnlocks != null) { LootBoxesUnlocks = new LootBoxUnlocks[progressionUnlocks.m_lootBoxesUnlocks.Length]; for (int i = 0; i < progressionUnlocks.m_lootBoxesUnlocks.Length; i++) { STULootBoxUnlocks lootBoxUnlocks = progressionUnlocks.m_lootBoxesUnlocks[i]; LootBoxesUnlocks[i] = new LootBoxUnlocks(lootBoxUnlocks); } } if (progressionUnlocks.m_7846C401 != null) { LevelUnlocks = new LevelUnlocks[progressionUnlocks.m_7846C401.Length]; for (int i = 0; i < LevelUnlocks.Length; i++) { var levelUnlocks = progressionUnlocks.m_7846C401[i]; LevelUnlocks[i] = new LevelUnlocks(levelUnlocks); } } OtherUnlocks = Unlock.GetArray(progressionUnlocks.m_otherUnlocks); UnknownUnlocks = Unlock.GetArray(progressionUnlocks.m_9135A4B2); }
public void SpecialHelper(ICLIFlags toolFlags) { var guids = ExtractDebugNewEntities.GetGUIDs(@"D:\ow\resources\verdata\52926.guids"); const Enum_BABC4175 lootboxType = Enum_BABC4175.Winter; HashSet <ulong> addedUnlocks = new HashSet <ulong>(); foreach (var progressionGuid in TrackedFiles[0x58]) { STUProgressionUnlocks progressionUnlocks = GetInstance <STUProgressionUnlocks>(progressionGuid); if (progressionUnlocks?.m_lootBoxesUnlocks == null) { continue; } foreach (STULootBoxUnlocks lootBoxUnlocks in progressionUnlocks.m_lootBoxesUnlocks) { ProcessLootBoxUnlocks(lootBoxUnlocks, guids, lootboxType, addedUnlocks); } } foreach (ulong genericSettingsGuid in TrackedFiles[0x54]) { STUGenericSettings_PlayerProgression playerProgression = GetInstance <STUGenericSettings_PlayerProgression>(genericSettingsGuid); if (playerProgression == null) { continue; } foreach (STULootBoxUnlocks lootBoxUnlocks in playerProgression.m_lootBoxesUnlocks) { ProcessLootBoxUnlocks(lootBoxUnlocks, guids, lootboxType, addedUnlocks); } break; } Console.Out.WriteLine("new ulong[] {"); foreach (ulong addedUnlock in addedUnlocks) { Console.Out.WriteLine($" 0x{addedUnlock:X16},"); } Console.Out.WriteLine("};"); }
public void SpecialHelper(ICLIFlags toolFlags) { ExtractDebugNewEntities.VersionInfo versionInfo = ExtractDebugNewEntities.GetGUIDVersionInfo(@"D:\ow\resources\verdata\49154.guids"); const Enum_BABC4175 lootboxType = Enum_BABC4175.SummerGames; HashSet <ulong> addedUnlocks = new HashSet <ulong>(); foreach (var progressionGuid in TrackedFiles[0x58]) { STUProgressionUnlocks progressionUnlocks = GetInstance <STUProgressionUnlocks>(progressionGuid); if (progressionUnlocks?.m_lootBoxesUnlocks == null) { continue; } foreach (STULootBoxUnlocks lootBoxUnlocks in progressionUnlocks.m_lootBoxesUnlocks) { ProcessLootBoxUnlocks(lootBoxUnlocks, versionInfo, lootboxType, addedUnlocks); } } foreach (ulong genericSettingsGuid in TrackedFiles[0x54]) { STUGenericSettings_PlayerProgression playerProgression = GetInstance <STUGenericSettings_PlayerProgression>(genericSettingsGuid); if (playerProgression == null) { continue; } foreach (STULootBoxUnlocks lootBoxUnlocks in playerProgression.m_lootBoxesUnlocks) { ProcessLootBoxUnlocks(lootBoxUnlocks, versionInfo, lootboxType, addedUnlocks); } break; } Console.Out.WriteLine("public static readonly ulong[] SummerGames2018 = new ulong[] {"); foreach (ulong addedUnlock in addedUnlocks) { Console.Out.WriteLine($" 0x{addedUnlock:X8},"); } Console.Out.WriteLine("};"); }