Exemple #1
0
        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");
            }
            ;
        }
Exemple #2
0
        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");
            }
        }