Exemplo n.º 1
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            // Access some class members to force the static constructors to run.
            object dummy = AllAbilities.PSPNames;

            dummy = PSPResources.Lists.AbilityAttributes;
            dummy = PSXResources.Lists.AbilityAttributes;
            dummy = SkillSet.GetDummySkillSets(PatcherLib.Datatypes.Context.US_PSX);
            dummy = AllMonsterSkills.PSXNames;
            dummy = AllJobs.GetNames(PatcherLib.Datatypes.Context.US_PSX);
            dummy = ActionMenuEntry.AllActionMenuEntries;
            dummy = ShopAvailability.GetAllAvailabilities(PatcherLib.Datatypes.Context.US_PSX);
            dummy = SpriteSet.GetSpriteSets(PatcherLib.Datatypes.Context.US_PSX);
            dummy = SpecialName.GetSpecialNames(PatcherLib.Datatypes.Context.US_PSX);
            dummy = Event.GetEventNames(PatcherLib.Datatypes.Context.US_PSX);

            Application.Run(new MainForm());
        }
Exemplo n.º 2
0
        public void UpdateView(Context context)
        {
            ignoreChanges = true;
            SuspendLayout();
            weaponPanel.SuspendLayout();
            shieldPanel.SuspendLayout();
            armorPanel.SuspendLayout();
            accessoryPanel.SuspendLayout();
            chemistItemPanel.SuspendLayout();
            storeInventoryCheckedListBox.BeginUpdate();

            weaponCastSpellComboBox.DataSource    = weaponCastSpellItems;
            chemistItemFormulaComboBox.DataSource = itemFormulaItems;

            weaponPanel.Visible = item is Weapon;
            weaponPanel.Enabled = item is Weapon;

            shieldPanel.Visible = item is Shield;
            shieldPanel.Enabled = item is Shield;

            armorPanel.Visible = item is Armor;
            armorPanel.Enabled = item is Armor;

            accessoryPanel.Visible = item is Accessory;
            accessoryPanel.Enabled = item is Accessory;

            chemistItemPanel.Visible = item is ChemistItem;
            chemistItemPanel.Enabled = item is ChemistItem;

            if (context == Context.US_PSP && ourContext != Context.US_PSP)
            {
                itemTypeComboBox.DataSource      = new List <ItemSubType>(pspItemTypes);
                weaponFormulaComboBox.DataSource = new List <AbilityFormula>(AbilityFormula.PSPAbilityFormulas);
                storeInventoryCheckedListBox.Items.Clear();
                foreach (ShopsFlags shop in shops)
                {
                    storeInventoryCheckedListBox.Items.Add(PatcherLib.PSPResources.Lists.ShopNames[shop]);
                }

                ourContext = Context.US_PSP;
            }
            else if (context == Context.US_PSX && ourContext != Context.US_PSX)
            {
                itemTypeComboBox.DataSource      = new List <ItemSubType>(psxItemTypes);
                weaponFormulaComboBox.DataSource = new List <AbilityFormula>(AbilityFormula.PSXAbilityFormulas);
                storeInventoryCheckedListBox.BeginUpdate();
                storeInventoryCheckedListBox.Items.Clear();
                foreach (ShopsFlags shop in shops)
                {
                    storeInventoryCheckedListBox.Items.Add(PatcherLib.PSXResources.Lists.ShopNames[shop]);
                }
                storeInventoryCheckedListBox.EndUpdate();

                ourContext = Context.US_PSX;
            }

            shopAvailabilityComboBox.Items.Clear();
            shopAvailabilityComboBox.Items.AddRange(ShopAvailability.GetAllAvailabilities(context).ToArray());

            if (item is Weapon)
            {
                Weapon w = item as Weapon;

                if (w.WeaponDefault != null)
                {
                    weaponAttributesCheckedListBox.SetValuesAndDefaults(ReflectionHelpers.GetFieldsOrProperties <bool>(w, weaponBools), w.WeaponDefault.ToWeaponBoolArray());
                }

                weaponRangeSpinner.SetValueAndDefault(
                    w.Range,
                    w.WeaponDefault.Range,
                    toolTip);
                weaponFormulaComboBox.SetValueAndDefault(
                    weaponFormulaComboBox.Items[w.Formula.Value],
                    weaponFormulaComboBox.Items[w.WeaponDefault.Formula.Value],
                    toolTip);
                weaponPowerSpinner.SetValueAndDefault(
                    w.WeaponPower,
                    w.WeaponDefault.WeaponPower,
                    toolTip);
                weaponEvadePercentageSpinner.SetValueAndDefault(
                    w.EvadePercentage,
                    w.WeaponDefault.EvadePercentage,
                    toolTip);

                if (w.Formula.Value == 2)
                {
                    weaponCastSpellComboBox.SetValueAndDefault(
                        weaponCastSpellComboBox.Items[w.InflictStatus],
                        weaponCastSpellComboBox.Items[w.WeaponDefault.InflictStatus],
                        toolTip);
                    weaponCastSpellComboBox.Visible  = true;
                    weaponCastSpellLabel.Visible     = true;
                    weaponSpellStatusSpinner.Visible = false;
                    hLabel4.Visible = false;
                    weaponSpellStatusLabel.Visible = false;
                }
                else
                {
                    weaponSpellStatusSpinner.SetValueAndDefault(
                        w.InflictStatus,
                        w.WeaponDefault.InflictStatus,
                        toolTip);
                    weaponCastSpellComboBox.Visible  = false;
                    weaponCastSpellLabel.Visible     = false;
                    weaponSpellStatusSpinner.Visible = true;
                    hLabel4.Visible = true;
                    weaponSpellStatusLabel.Visible = true;
                }

                weaponElementsEditor.SetValueAndDefaults(w.Elements, w.WeaponDefault.Elements);
                weaponUnknownSpinner.SetValueAndDefault(w.Unknown, w.WeaponDefault.Unknown, toolTip);
            }
            else if (item is Shield)
            {
                shieldPhysicalBlockRateSpinner.SetValueAndDefault(
                    (item as Shield).PhysicalBlockRate,
                    (item as Shield).ShieldDefault.PhysicalBlockRate,
                    toolTip);
                shieldMagicBlockRateSpinner.SetValueAndDefault(
                    (item as Shield).MagicBlockRate,
                    (item as Shield).ShieldDefault.MagicBlockRate,
                    toolTip);
            }
            else if (item is Armor)
            {
                armorHPBonusSpinner.SetValueAndDefault(
                    (item as Armor).HPBonus,
                    (item as Armor).ArmorDefault.HPBonus,
                    toolTip);
                armorMPBonusSpinner.SetValueAndDefault(
                    (item as Armor).MPBonus,
                    (item as Armor).ArmorDefault.MPBonus,
                    toolTip);
            }
            else if (item is Accessory)
            {
                accessoryMagicEvadeRateSpinner.SetValueAndDefault(
                    (item as Accessory).MagicEvade,
                    (item as Accessory).AccessoryDefault.MagicEvade,
                    toolTip);
                accessoryPhysicalEvadeRateSpinner.SetValueAndDefault(
                    (item as Accessory).PhysicalEvade,
                    (item as Accessory).AccessoryDefault.PhysicalEvade,
                    toolTip);
            }
            else if (item is ChemistItem)
            {
                chemistItemFormulaComboBox.SetValueAndDefault(
                    chemistItemFormulaComboBox.Items[(item as ChemistItem).Formula],
                    chemistItemFormulaComboBox.Items[(item as ChemistItem).ChemistItemDefault.Formula],
                    toolTip);
                chemistItemSpellStatusSpinner.SetValueAndDefault(
                    (item as ChemistItem).InflictStatus,
                    (item as ChemistItem).ChemistItemDefault.InflictStatus,
                    toolTip);
                chemistItemXSpinner.SetValueAndDefault(
                    (item as ChemistItem).X,
                    (item as ChemistItem).ChemistItemDefault.X,
                    toolTip);
            }

            paletteSpinner.SetValueAndDefault(item.Palette, item.Default.Palette, toolTip);
            graphicSpinner.SetValueAndDefault(item.Graphic, item.Default.Graphic, toolTip);
            enemyLevelSpinner.SetValueAndDefault(item.EnemyLevel, item.Default.EnemyLevel, toolTip);

            itemTypeComboBox.SetValueAndDefault(item.ItemType, item.Default.ItemType, toolTip);

            itemAttributesSpinner.SetValueAndDefault(item.SIA, item.Default.SIA, toolTip);
            secondTableIdSpinner.SetValueAndDefault(item.SecondTableId, item.Default.SecondTableId, toolTip);
            priceSpinner.SetValueAndDefault(item.Price, item.Default.Price, toolTip);
            shopAvailabilityComboBox.SetValueAndDefault(item.ShopAvailability, item.Default.ShopAvailability, toolTip);

            unknown1Spinner.SetValueAndDefault(item.Unknown1, item.Default.Unknown1, toolTip);
            unknown2Spinner.SetValueAndDefault(item.Unknown2, item.Default.Unknown2, toolTip);

            if (item.Offset < 256)
            {
                storeInventoryCheckedListBox.Visible = true;
                storeInventoryCheckedListBox.SetValuesAndDefaults(
                    StoreInventories.IsItemInShops(item, shops),
                    StoreInventories.Default.IsItemInShops(item, shops));
            }
            else
            {
                storeInventoryCheckedListBox.Visible = false;
            }

            if (item.Default != null)
            {
                itemAttributesCheckedListBox.SetValuesAndDefaults(ReflectionHelpers.GetFieldsOrProperties <bool>(item, itemBools), item.Default.ToBoolArray());
            }

            weaponPanel.ResumeLayout();
            shieldPanel.ResumeLayout();
            armorPanel.ResumeLayout();
            accessoryPanel.ResumeLayout();
            chemistItemPanel.ResumeLayout();
            storeInventoryCheckedListBox.EndUpdate();
            ResumeLayout();
            ignoreChanges = false;
        }
Exemplo n.º 3
0
        private void RegenerateContextSensitiveData()
        {
            string[] rewardStrings         = new string[256];
            string[] preferredStatsStrings = new string[256];
            string[] townStrings           = new string[256];
            string[] propNames             = new string[256];

            for (int i = 0; i < 256; i++)
            {
                string unknownString = string.Format("{0:X2} Unknown", i);
                rewardStrings[i]         = unknownString;
                preferredStatsStrings[i] = unknownString;
                townStrings[i]           = unknownString;
                propNames[i]             = unknownString;
            }
            townStrings[0] = "Any Town";

            rewardStrings[(int)Reward.Gil] = "Gil";

            preferredStatsStrings[(int)BraveFaithNeutral.Faith]   = "Faith";
            preferredStatsStrings[(int)BraveFaithNeutral.Neutral] = "Neutral";

            if (ourContext == Context.US_PSP)
            {
                preferredStatsStrings[(int)BraveFaithNeutral.Brave] = "Bravery";
                rewardStrings[(int)Reward.Land]     = "Wonder";
                rewardStrings[(int)Reward.Treasure] = "Artefact";
                PSPResources.Lists.TownNames.ForEach(kvp => townStrings[(int)kvp.Key] = kvp.Value);
                var props = PSPResources.Lists.Propositions;
                for (int i = 0; i < props.Count; i++)
                {
                    propNames[i] = props[i];
                }
            }
            else if (ourContext == Context.US_PSX)
            {
                preferredStatsStrings[(int)BraveFaithNeutral.Brave] = "Brave";
                rewardStrings[(int)Reward.Land]     = "Unexplored Land";
                rewardStrings[(int)Reward.Treasure] = "Treasure";
                PSXResources.Lists.TownNames.ForEach(kvp => townStrings[(int)kvp.Key] = kvp.Value);
                var props = PSXResources.Lists.Propositions;
                for (int i = 0; i < props.Count; i++)
                {
                    propNames[i] = props[i];
                }
            }

            completeJobComboBox.BeginUpdate();
            completeJobComboBox.Items.Clear();
            completeJobComboBox.Items.AddRange(propNames);
            completeJobComboBox.EndUpdate();

            unlockedComboBox.BeginUpdate();
            unlockedComboBox.Items.Clear();
            unlockedComboBox.Items.AddRange(ShopAvailability.GetAllAvailabilities(ourContext).ToArray());
            unlockedComboBox.EndUpdate();

            preferredStatsComboBox.BeginUpdate();
            preferredStatsComboBox.Items.Clear();
            preferredStatsComboBox.Items.AddRange(preferredStatsStrings);
            preferredStatsComboBox.EndUpdate();

            rewardComboBox.BeginUpdate();
            rewardComboBox.Items.Clear();
            rewardComboBox.Items.Add("Nothing");
            rewardComboBox.Items.AddRange(rewardStrings);
            rewardComboBox.EndUpdate();

            townComboBox.BeginUpdate();
            townComboBox.Items.Clear();
            townComboBox.Items.AddRange(townStrings);
            townComboBox.EndUpdate();

            randomSuccessClassComboBox.BeginUpdate();
            randomSuccessClassComboBox.Items.Clear();
            randomSuccessClassComboBox.Items.Add("None");
            var jobNames = ourContext == Context.US_PSP ? PSPResources.Lists.JobNames : PSXResources.Lists.JobNames;

            randomSuccessClassComboBox.Items.AddRange(jobNames.Sub(0x4A, 0x4A + 19).ToArray());
            randomSuccessClassComboBox.EndUpdate();
        }