private void WriteItems() { if (cMode.SelectedIndex == 2) { WriteFreeItem(Deku_Mask); if (cCutsc.Checked) { //giants cs were removed WriteFreeItem(Song_Oath); } ; return; } ; //write free item int j = ItemList.FindIndex(u => u.Replaces == 0); WriteFreeItem(ItemList[j].ID); //write everything else ROMFuncs.ReplaceGetItemTable(ModsDir); ROMFuncs.InitItems(); for (int i = 0; i < ItemList.Count; i++) { if (ItemList[i].Replaces == -1) { continue; } ; j = ItemList[i].ID; bool repeat = REPEATABLE.Contains(j); bool cycle = CYCLE_REPEATABLE.Contains(j); int r = ItemList[i].Replaces; if (j > IST_NEW) { j -= 23; } ; if (r > IST_NEW) { r -= 23; } ; if ((i >= B_Fairy) && (i <= B_Mushroom)) { ROMFuncs.WriteNewBottle(r, j); } else { ROMFuncs.WriteNewItem(r, j, repeat, cycle); }; } ; if (Shops) { ROMFuncs.ApplyHack(ModsDir + "fix-shop-checks"); } ; }
private void WriteItems() { if (Settings.LogicMode == LogicMode.Vanilla) { WriteFreeItem(Items.MaskDeku); if (Settings.ShortenCutscenes) { //giants cs were removed WriteFreeItem(Items.SongOath); } return; } //write free item int itemId = ItemList.FindIndex(u => u.ReplacesItemId == 0); WriteFreeItem(ItemList[itemId].ID); //write everything else ROMFuncs.ReplaceGetItemTable(ModsDirectory); ROMFuncs.InitItems(); for (int i = 0; i < ItemList.Count; i++) { itemId = ItemList[i].ID; // Unused item if (ItemList[i].ReplacesItemId == -1) { continue; } ; bool isRepeatable = Items.REPEATABLE.Contains(itemId); bool isCycleRepeatable = Items.CYCLE_REPEATABLE.Contains(itemId); int replacesItemId = ItemList[i].ReplacesItemId; itemId -= ItemUtils.GetItemOffset(itemId); replacesItemId -= ItemUtils.GetItemOffset(replacesItemId); if (ItemUtils.IsBottleCatchContent(i)) { ROMFuncs.WriteNewBottle(replacesItemId, itemId); } else { ROMFuncs.WriteNewItem(replacesItemId, itemId, isRepeatable, isCycleRepeatable); } } if (Settings.AddShopItems) { ROMFuncs.ApplyHack(ModsDirectory + "fix-shop-checks"); } }